【发布时间】: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%,正如我在我的问题中所说的那样