【发布时间】:2013-02-22 17:08:08
【问题描述】:
我有一个连续运行的多进程 PHP (CLI) 应用程序。我正在尝试优化内存使用,因为每个进程使用的内存量限制了我可以在任何给定时间运行的分叉数量(因为我有有限的可用内存量)。我尝试了几种方法。例如,按照preinheimer 的建议,我重新编译了 PHP,禁用了所有扩展,然后仅重新启用了我的应用程序所需的那些(mysql、curl、pcntl、posix 和 json)。但是,这并没有减少内存使用量。它实际上略有增加。
我几乎准备好放弃多进程方法,但我正在做最后的努力,看看是否有人对如何减少内存使用有更好的想法。我将在下面发布我的替代方法,其中涉及对我的应用程序进行重大重构。
非常感谢任何可以帮助我应对这一挑战的人!
【问题讨论】:
-
虽然这不是你问题的真正答案,而是一个建议看看:你看过 php hiphop 吗? php hiphop 将你的 php 重新编译成 c++。最终这可能对你有用,但这取决于你如何编写代码以及你使用什么函数。我不知道它是否适用于 pcntl,但根据我的经验,它可能会大大提高速度和内存使用率。
-
是的,我确实有。我在研究这个问题时发现了它的存在。我没有尝试过 HipHop 的主要原因只是因为我没有使用它的经验(我知道这不是一个很好的理由)。这是一个很好的建议,我认为它可以很好地回答这个问题。如果你有经验,你想把一些想法变成答案吗?
标签: php multithreading memory-management compilation