我有一个用PHP编写的web应用程序。它使用MySQL进行数据存储。今天,我决定对它进行分析,找出代码中的瓶颈,找出它的哪些部分运行得比其他部分慢。平常的东西。我做了很多工作,现在我的页面在不到0.05秒的时间内加载到我的桌面上。
但是现在我的分析器告诉我,我的应用程序有一半的时间都在忙于构造类。Front控制器需要Config、Database和User类,它们在__construct()中有自己的东西要做,然后它加载Page控制器,后者加载Cache和View,然后它触发<代码>D9的main()方法。所有这些工作时间占总工作时间的50%。另外50%用于查询数据库、篡改查询结果并将它们输出到View中。
问题是:这样可以吗?"50%用于建筑“这件事?这是不是意味着我优化了我的应用程序?有人告诉我,web应用程序最耗时的操作是数据库查询。我对它们进行了优化,应用了一些缓存,现在它们完全在控制之下。实际上,我对如何优化类结构一无所知。我应该尝试优化这些__construct()方法,还是让它们自己优化?
发布于 2009-10-11 12:39:27
我不会太担心;如果在完成页面渲染之前没有对数据做很多处理,那么大部分运行时间都会花在类的构造函数中,但这或多或少仍然是一个恒定的惩罚。如果你有很多逻辑在控制器中运行,而你的分析器仍然告诉你,它花了很多时间启动你的应用程序,那么你可能想要考虑优化;记住过早优化是一件非常糟糕的事情,除非应用程序的执行时间足够慢,以至于被认为是错误,否则你最好把时间花在开发新功能或修复错误上。
发布于 2009-10-11 12:09:40
它是构造功能,还是构造所调用的?您是否正在使用可以查看这50%构成的工具?因为大部分工作可能是调用其他函数。
发布于 2009-10-11 12:43:20
我曾经不得不在Drupal站点中集成一些web服务。
所以我最终做了一些分析,结果发现Drupal引导程序使用了90%的时间,而我的代码使用了10%的剩余时间。Drupal的设计很差( tho :),所以它加载了很多很多它并不真正使用的东西。
我想该由你来决定你的案子了。
https://stackoverflow.com/questions/1550546
复制相似问题