2011-03-31 16 views
0

我已經在最可能的瓶頸處優化了腳本。 很難將代碼移植到其他語言,因此這不是一個好的解決方案。針對CPU和內存密集型命令行PHP腳本的良好優化器?

是否有任何操作碼生成器,我可以使用優化器來優化這些連續運行的PHP腳本的性能?

他們從命令行運行,而不是在apache上運行。

/usr/bin/php myBatchProcessor.php 

eaccelerator或Zend優化器是否適用於命令行腳本?或任何其他建議 ?

+0

代碼解析是瓶頸嗎?數字是多少? – 2011-03-31 06:35:59

+1

通常不是代碼很慢,**但是**你的腳本需要大量的外部資源(例如mysql,磁盤寫入) – ajreal 2011-03-31 07:08:51

回答

2

PHP 「優化」 是蛇油!只需要在PHP4時代

「優化器」,因爲從PHP源上Zend引擎1跑了字節碼轉換效率低下的。這在PHP5中不再是問題。 PHP4時代產品的現代衍生產品也執行字節碼緩存,這非常有幫助。警惕任何產品,聲稱它可以使普通香草PHP更快。特別是爲了錢。

他們從命令行運行,而不是在apache上運行。

通常,當別人都做了,我會推薦APC 字節緩存,但APC什麼也不做在命令行中運行長時間運行的腳本。

您是肯定您已經profiled your code and removed every possible bottleneck

如果是這樣,那麼可能需要在HipHop這個編譯器創建可執行文件之前將PHP轉換爲C++的編譯器。它可能不適合您的需求,因爲它專門爲設計了用於提供HTTP請求。

+0

是的.. 1 HipHop的啓動 – 2011-03-31 06:50:13

+0

HipHop的工作奇蹟,特別是循環或數學密集腳本。它不必用於提供HTTP服務,但可用於製作可執行應用程序。數學和循環速度將提高10倍,但函數的速度會更快或更慢。 – Alasdair 2012-01-22 02:31:23

0

您可以安裝APC併爲命令行高速緩存啓用APC。確保!在這種情況下爲您的網絡服務器禁用APC,否則兩者將發生衝突。

不要指望太多來自APC,因爲操作碼生成通常不是減慢腳本速度的部分,請查看腳本分析。

編輯:
添加這些設置到您的配置文件:
apc.enabled = 1
apc.enable_cli = 1