2010-04-18 34 views
5

我目前正在为个人项目开发一个PHP MVC框架。在我开发框架时,我有兴趣通过实现不同的优化技术来看到任何显着的性能。我已经实现了一个记录mircotime的原生BenchMark类。PHP性能指标

问题是我没有执行时间的参照系。我非常接近这个项目的初始阶段,它有一个数据库连接和一些查询但没有输出(禁止一些调试文本和BenchMark日志)。我目前的执行时间为0.01917 seconds

我以为这是较低的,但正如我之前所说,我没有任何参照系。我明白在性能提升时需要考虑很多变量,但我希望能够找到某种度量标准,例如:a)测量每秒请求示例的性能的技术和b)比较结果;在“标准”网络服务器上如何执行“适度”大小的PHP应用程序。我感谢“适度”和“标准”是非常主观的词语,因此可能是特定应用程序的已知执行时间表(例如,StackOverFlow的执行时间)。

测量性能的其他技术除执行时间外还有其他什么技术?

MVC Framework Performance Comparisom看着它谈论的请求每秒(RPS)。这是如何计算的?我猜测用我当前的执行时间0.01917 seconds可以处理52个RPS (= 1/0.01917)。这似乎比图表中引用的要低得多,特别是当你考虑我目前有限的功能时。

回答

1

要基准某个页面,请使用ab。要对服务器上的页面负载进行基准测试,请尝试siege

但是......这两者仍然大多是人为测试。我亲自添加一些额外的日志。在网络服务器(或代理,不管)

  • 慢查询日志记录在数据库中

    • 页面加载时间每页
    • 查询次数记录太多,如果可能的话,这样,你就会知道你的页面如何重;)
  • 0

    您可以使用Xdebug的分析代码。但是你在开发过程中过早优化方式。只需调用microtime就可以减慢速度,因为它必须向系统发出一个呼叫(在PHP引擎之外)。每个包含,对象创建,与另一个资源(即数据库)的连接相对来说都会增加很多开销。

    如果你设计你的系统是非常缓存友好的,那么你不必执行代码。例如,WordPress很慢。在体面的Web服务器上大约15页/秒。它做了很多包含并运行了很多代码。但是添加SuperCache插件并且性能提高10倍。它通过创建一个缓存文件并使用一些Apache规则来工作,所以PHP根本不需要运行。