【问题标题】:Php CPU cycle benchmarkingPHP CPU周期基准测试
【发布时间】:2011-11-11 11:26:42
【问题描述】:

我们已将网站的一个重要模块从纯 PHP 移植到 Symfony。

这个模块有很多页面点击,因此我们需要判断额外的硬件要求(如果有的话)。我们想对移植后网页占用的额外内存和 CPU 周期进行基准测试。

PHP 中是否有任何现有的工具或函数来获取这些统计信息?我在php中遇到过getrusage这个函数,但是好像不靠谱。

【问题讨论】:

  • 不是学究气,而是拼写为“Symfony”。

标签: php memory benchmarking cpu


【解决方案1】:

XDebug 可用于创建 callgrind 文件和函数跟踪。

Former 解释了请求中花费的时间、函数调用次数等。例如,KCacheGrind 可用于检查该数据。

后者可用于查看某些函数路径在现实中是如何工作的,检查函数的内存使用情况,等等。

【讨论】:

  • :- Xdebug 和 KcacheGrind 类型的工具也会占用 cpu 和内存资源,并且一次只处理一个请求,我们想使用 apache benchmark 等工具进行基准测试,然后使用工具的 cpu 时间和内存日志,以查看高负载时的模式。
  • 可以附加这些缓存研磨文件,而不是覆盖每个请求。尽管它给动作增加了相当多的额外负载,但相对使用在大多数情况下是正确的。
【解决方案2】:

Symfony 和我见过的大多数其他框架都提供了一个内置的基准测试系统,我发现它非常有用。

也看看你是否觉得这很有用。 http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html

【讨论】:

  • 请参考 Symphony 的内置基准测试系统。在 apache 基准测试中,我也会这样做。我可能会使用 jmeter 或 siege 来访问网站上的不同页面。 ab 只支持一个
【解决方案3】:

除了以这种方式进行基准测试之外,您还可以在与生产服务器等效的开发服务器上进行压力测试,每秒请求数相同,例如Apache Benchmarking Tool。 (别忘了安装一个操作码缓存)。

【讨论】:

  • 是的,我们会这样做,但是如果我们得到 cpu 时间和内存模式,那么我们可以更好地计划,因为网站上有许多其他模块,模拟网站流量也会模拟它们.我们希望每个模块类型的统计数据消耗负载,以进行容量规划。
【解决方案4】:

Symfony 是分析 PHP 项目的最佳框架之一。它内置了一些很棒的工具。

在 Symfony Conf 2010 上对您的选择进行了精彩的讨论。

幻灯片在这里http://www.slideshare.net/old_sound/debugging-and-profiling-symfony-apps

【讨论】:

  • 乔恩那是相当多的。需要通过它们。你想根据我的需要推荐一个吗?谢谢:)
【解决方案5】:

请参阅我们的PHP Profiling Tools。您可以以最小的开销获得相对计数,或者您可以获得方法和调用树的计时。

【讨论】:

    猜你喜欢
    • 2016-12-25
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    相关资源
    最近更新 更多