有许多变量会影响您的应用程序的性能。我建议您不要立即认为 PHP 是问题所在。
首先,您如何为 PHP 提供服务?您是否尝试过 Apache 或 IIS 本身的基本优化?服务器是否忙于处理其他类型的请求?您是否利用了PHP 代码加速器?测试服务器是否是您的瓶颈的一种方法是尝试在另一台服务器上运行应用程序。
其次,整个应用程序的性能是否缓慢,或者它似乎只影响某些页面?这可以告诉您从哪里开始分析性能。如果整个应用程序很慢,则问题更可能出现在底层服务器/平台中,或者是作为每个请求的一部分的全局 SQL 查询(例如,用户身份验证)。
第三,您提到最小化 SQL 查询的数量,但是优化现有查询呢?如果您使用 MySQL,您是否利用了每个存储系统的各种优势?您是否对最重要的查询运行EXPLAIN以确保它们被正确索引?这对于访问大表的查询至关重要;数据集越大,您越会注意到索引不佳的影响。幸运的是,有很多像这篇文章这样解释如何使用 EXPLAIN 的文章。
第四,一个常见的错误是假设您的数据库服务器会自动使用系统可用的所有资源。您应该检查以确保您已为数据库应用程序显式分配了足够的资源。例如,在 MySQL 中,您需要为键缓冲区、临时表大小、线程并发性、innodb 缓冲池大小等添加自定义设置(在 my.cnf 文件中)。
如果您已经仔细检查了以上所有内容,但仍然无法找到瓶颈,那么 Xdebug 之类的代码分析器绝对可以提供帮助。就个人而言,我更喜欢 Zend Studio 分析器,但它可能不是最佳选择,除非您已经在利用 Zend 平台堆栈的其余部分。然而,根据我的经验,PHP 本身是性能缓慢的根本原因是非常罕见的。通常,代码分析器可以帮助您更准确地确定哪些数据库查询应受到指责。