【问题标题】:Good optimizer for CPU and memory intensive command line PHP scripts?CPU 和内存密集型命令行 PHP 脚本的良好优化器?
【发布时间】:2011-03-31 06:20:50
【问题描述】:

我已经针对大多数可能的瓶颈优化了脚本。 将代码移植到其他语言很困难,所以这不是一个好的解决方案。

是否有任何操作码生成器、优化器可以用来优化这些持续运行的 PHP 脚本的性能?

它们从命令行运行,而不是在 apache 上运行。

/usr/bin/php myBatchProcessor.php 

eaccelerator 或 Zend 优化器是否适用于命令行脚本?或任何其他建议 ?

【问题讨论】:

  • 代码解析是瓶颈吗?数字是多少?
  • 通常不是代码很慢,但是你的脚本需要大量的外部资源(例如 mysql、磁盘写入)

标签: php eaccelerator zend-optimizer


【解决方案1】:

PHP“优化器”是蛇油!

“优化器”仅在 PHP4 时代才需要,因为从 PHP 源代码到运行 Zend Engine 1 的字节码的转换效率低下。这不再是 PHP5 中的问题。 PHP4 时代产品的现代衍生产品也执行字节码缓存,这非常有帮助。警惕 任何 声称它可以使普通 PHP 更快的产品。尤其是为了钱。

它们从命令行运行,而不是在 apache 上运行。

通常,正如其他人所做的那样,我建议使用 APC 字节码缓存,但 APC 对在命令行运行的长时间运行的脚本没有任何作用。

确定你已经profiled your code and removed every possible bottleneck了吗?

如果是这样,可能是时候尝试一下HipHop,这是一个在创建可执行文件之前将 PHP 转换为 C++ 的编译器。它可能不适合您的需求,因为它是专门为服务 HTTP 请求而设计的。

【讨论】:

  • HipHop 创造奇迹,尤其是在循环或数学密集型脚本上。它不必用于服务 HTTP,但可用于制作可执行应用程序。数学和循环将快 10 倍,但函数的速度或多或少相同。
【解决方案2】:

您可以安装 APC 并启用 APC 以进行命令行缓存。确保!在这种情况下为您的网络服务器禁用 APC,否则两者会发生冲突。

不要对 APC 期望太多,因为操作码生成通常不是减慢脚本速度的部分,请查看分析脚本。

编辑:
将这些设置添加到您的配置文件中:
apc.enabled = 1
apc.enable_cli = 1

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2019-02-18
    • 2020-12-02
    • 2013-03-06
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多