2009-10-11 52 views
3

我有一个用PHP编写的web应用程序。它使用MySQL进行数据存储。今天,我决定对其进行简介以找出代码中的瓶颈,并找出其中哪些部分运行速度慢于其他部分。通常的东西。我做了很多工作,现在我的桌面上的加载时间不到0.05秒。剖析PHP应用程序,50%的时间忙于构建类 - 是否可以?

但现在我的分析器告诉我,这段时间有一半时间我的应用程序正忙于构建类。 Front控制器需要ConfigDatabaseUser类,他们有自己的东西,在__construct()做,那么它加载Page控制器,它加载CacheView,之后它激发的Pagemain()方法。所有这些东西需要占总工作时间的50%。另外50%用于查询db,查询结果并在View中输出。

问题是:这是好吗? “建设50%”的东西?这是否意味着我优化了我的应用程序?我已经被告知,Web应用中最耗时的操作是数据库查询。我优化了它们,应用了一些缓存,现在它们完全处于控制之下。而且我实际上对如何优化课堂建设毫无头绪。我应该尝试优化这些方法,还是让它们保持不变?

回答

3

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

+0

是的,这个建造时间似乎或多或少是恒定的,是的。好点。 – n1313 2009-10-11 12:54:08

2

它是构造函数还是构造调用?您是否在使用工具来查看这些50%的组成成分?由于大部分工作可能会调用其他功能。

+0

我不确定“构建功能”是什么意思。例如,'__construct()'方法中的User类获取'Database'和'Config'类的实例,定义一些默认值并试图找出当前用户是否登录了注册用户或某个匿名兄弟(1查询到数据库)。所有这些东西需要0.02秒,或所有加载时间的〜20%。 – n1313 2009-10-11 12:21:10

+0

我的意思是这个构造函数占用了50%的处理时间。什么是单个组件的时间?构造函数中的内容需要多长时间。 – 2009-10-11 16:14:32

2

我曾经在Drupal站点中集成过一些Web服务。

因此,我最终做了一些分析,只是发现Drupal bootstrap使用了90%的时间,而我的代码占用了剩下的10%。 Drupal的设计很糟糕:),所以它加载了很多很多东西,它并不真正使用。

我认为这取决于你的决定在你的情况。

相关问题