升级硬件以提高程序性能时,应该考虑首先考虑CPU,RAM还是两者?

我有一个简单的脚本,我用PHP编写的(在阅读大量QA之后,似乎有不太理想的内存pipe理)。 这是一个非常小的脚本,通过文件夹中的configuration文件循环; 将其与数据库中的logging进行比较,如果存在差异,则相应地更新logging。

虽然脚本less于20行,但我在任何时候都处理超过30,000个configuration文件。

我的电脑是英特尔的双核3.06 GHz,在Ubuntu 12.04上运行8 Gig。

当我执行脚本时,CPU几乎立即爬到100%并停留在那里。 使用顶级命令,我可以看到PHP进程的内存一直增加,直到它最终在8个演出和崩溃中最大化。 (我通常在脚本崩溃之前通过脚本获取大约3/4,目前大约需要90分钟。)

从硬件的angular度来看,我怎样才能使这个过程更有效率? 如果我升级到一个quadcore,这会减less一半的时间执行脚本? 如果我升级到一个hexcore,这将减less4所需要的时间? 另外,整理脚本2倍或4倍的速度也意味着我减less了内存使用,或者我仍然需要升级内存?

而不是阅读文件不断寻找变化(这可能导致更多的IO等待比实际的CPU使用率)我强烈build议使用inotify观察变化,只有当发生变化时才会作出反应:

文档: http : //php.net/manual/en/book.inotify.php

有关更多背景信息,请参阅http://en.wikipedia.org/wiki/Inotify

更多的CPU意味着你会更快地耗尽内存。 我不得不说,你最好的select是纠正脚本中的内存pipe理。 要使用这么多的RAM,我不得不认为你有一个内存泄漏。