分析PHP应用程序,50%的时间忙于构建类 - 这样可以吗?

时间:2009-10-11 12:06:05

标签: php performance optimization profiling

我有一个用PHP编写的Web应用程序。它使用MySQL进行数据存储。今天我决定对其进行分析,以找出代码中的瓶颈,并找出其中哪些部分比其他部分运行得慢。通常的东西。我做了很多工作,现在我的桌面加载时间不到0.05秒。

但现在我的探查器告诉我,有一半时间我的应用程序正在忙着构建类。 Front控制器需要ConfigDatabaseUser类,他们在__construct()中有自己的事情要做,然后加载Page控制器,加载CacheView,之后它会触发main() Page方法。所有这些东西占总工作时间的50%。其他50%用于查询db,杂乱查询结果并在View中输出。

问题是:这没关系吗? “施工50%”的事情?这是否意味着我优化了我的应用程序?我被告知,Web应用程序最耗时的操作是数据库查询。我优化了它们,应用了一些缓存,现在它们完全受到控制。而我实际上并不了解如何优化班级建设。我应该尝试优化这些__construct()方法还是留下它们?

3 个答案:

答案 0 :(得分:3)

我不会太担心;如果你在完成渲染页面之前没有对数据做很多事情,那么运行它的大部分时间都将用在类的构造函数中,但这应该或多或少地保持不变的惩罚。如果您在控制器中运行了很多逻辑并且您的探查器仍然告诉您它花了很多时间启动您的应用程序,那么您可能需要考虑优化;请记住,过早优化是一件非常糟糕的事情,除非应用程序的执行时间足够慢以致被视为错误,否则您最好花时间开发新功能或修复错误。

答案 1 :(得分:2)

它是构造函数还是构造调用的东西?您是否正在使用一种工具,您可以看到这些50%的组成部分?由于大多数工作可以调用其他功能。

答案 2 :(得分:2)

我曾经不得不在Drupal网站上集成一些Web服务。

所以我最终做了一些分析只是为了发现Drupal引导程序正在使用90%的时间而我的代码占用剩下的10%。 Drupal设计很糟糕:),所以它加载了大量的东西并没有真正使用。

我认为由你来决定你的情况。