【问题标题】:How to stress cpu with a single php script running?如何在运行单个 php 脚本时给 cpu 施加压力?
【发布时间】:2011-10-30 21:10:07
【问题描述】:

我制作了一个小脚本来计算素数,我在 win7 (x64) 上使用最新的 xampp (x86),该脚本使用了大约 25% 的 cpu 并在 2 分钟内完成,我尝试了最新的wampserver (x64) 并使用相同的 25% 的 cpu 以某种方式需要两倍以上的时间才能完成。在 xampp 和 wampserver 上,当我多次打开同一个文件时,它会保持 25%,如果我使用相同的脚本但不同的名称制作 4 个不同的文件并打开所有 4 个,cpu 会达到 100%,并且温度会增加很多和运行 prime 95 差不多。

我想以运行单个脚本占用 100% 的 cpu(或者如果不可能的话,减少一点)的方式来进行质数计算,有什么想法吗?

我将开始学习 c++,对于这类东西,我认为它会更适合,但我知道 php,我想用它来做,也许以后我会做同样的事情或更好,但使用 c++。

我认为不可能甚至没有听说过这样的事情,但如果我可以在同一个 php 脚本上同时运行两个代码块,也许它会成功(或者不考虑这在我看来是一个非常“人造的” ' 可以“设置/删除”的限制,我可能是错的,所以听听您对此的意见会很好)。

另外,任何关于为什么 wampserver 与 xampp 相比如此慢的理论(两者都没有安装任何东西并且都具有默认设置),还有一些加速它们的好技巧会很好,我的意思是,wamp 至少应该能够或多或少地跟上 xampp(一个安装的东西和另一个安装的东西没有太大区别)?

【问题讨论】:

  • 你也许可以调整你的 php.ini 以允许 php 使用更多的内存和类似的东西,这样它会占用大量的 CPU。
  • 你用的是四核CPU还是HT双核?单个进程将(并且可以)仅在一个核心上运行,这意味着:您至少需要与您拥有的核心一样多的进程
  • 一个线程不能加载多个内核。我猜你有一个有四个核心的 CPU,所以你需要 4 个进程,或者一个有 4 个线程的进程(或者 2 个有 2 个线程)。
  • @KingCrunch 单个 线程 将(并且可以)仅在一个核心上运行,这意味着:您至少需要与核心一样多的 线程你有 - 因为 PHP 不支持多线程,这在这种情况下等同于同一件事,但最好是正确的......
  • @KingCrunch 四核,它为每个核心分配了 25% 的负载,至少任务管理器报告是这样的。还有很多运行的具有相同名称的 php 脚本不会让它通过 25%,但是如果我更改名称并执行 4 个具有不同名称的脚本,它会达到 100%,正如我在我的问题中所说的那样

标签: php load xampp cpu primes


【解决方案1】:

要最大化服务器,您需要将 php 的最大执行时间增加到非常大的值,但我也建议从命令行运行脚本,因为 apache 可以产生很大的不同。尝试使用 fast-cgi 运行 lighttpd 会产生很大的不同。

【讨论】:

  • 所有这些都对脚本本身的执行速度有所帮助,顺便说一句,这对我也有好处,因为它是一个真正需要速度的脚本,但我真正需要并且将会是所做的是将工作分配给 4 个独立的进程,以最大限度地利用所有内核。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2020-12-03
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多