2008-08-16 73 views
16

有沒有人有使用PHP加速器的經驗,如MMCacheZend Accelerator?我想知道,如果使用這兩種方法中的任何一種,PHP都可以比得上更快的網絡技術。另外,是否有權利使用這些?編譯PHP?

+2

您應該將標題更改爲「加速PHP」。儘管關於編譯PHP有許多問題,但這完全不是關於編譯器的。 – 2009-09-26 13:15:39

回答

13

請注意,Zend Optimizer和MMCache(或類似的應用程序)是完全不同的東西。雖然Zend Optimizer試圖優化程序操作碼,但MMCache會將腳本緩存在內存中並重新使用預編譯的代碼。

我做了一些基準,前一段時間,你可以找到在我的博客中results(德國雖然)。基本結果如下:

Zend Optimizer本身並沒有幫助。其實我的腳本比沒有優化器慢。

當涉及到緩存: *最快:eAccelerator * XCache * APC

和:你想安裝一個操作碼緩存!

例如: alt text http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

這是它採取調用WordPress的主頁10.000倍的時間。

編輯: BTW,eAccelerator本身包含一個優化器。

2

根據所執行的有多少你的PHP代碼的實際執行和需要多長時間他們可以是一個真正的大勝利。它當然不會受到傷害,但是你看到的收益將取決於你的時間在哪裏。

BTW mmcache已經被捲成不同的項目現在,名字我忘了,但谷歌會告訴你。

3

兩者都很有趣,並且會提供速度提升,因爲它們將源代碼編譯爲二進制表示,然後由PHP引擎執行。

任何巨大的網站使用PHP(臉譜例如)運行在運行某種操作碼緩存系統,如MMCache的。

問題是,根據您的系統,它們不是很容易設置。

0

你檢查過Phalanger嗎?它將PHP編譯爲.NET代碼。這裏有some benchmarks這表明它可以顯着提高性能。

+0

進一步基準:http://www.php-compiler.net/benchmarks – Eldros 2011-09-15 12:05:44

0

我在當天使用了Zend Accelerator(2004-ish)。它肯定在它可以使用的代碼上獲得了一些重要的性能勝利,但是不幸的是我使用的系統經常動態地加載代碼然後對它進行評估,Zend Accelerator當時無法做很多事情(和我一樣, d猜猜還是不行)。

不利的一面是,我們當然看到了一些緩存問題(這裏的代碼會改變,但與一個或其他原因更改的編譯版本同步)。我想現在可能已經解決了這些問題。

反正我沒有任何硬比較數字,肯定沒有寫在不同的環境相同的系統進行比較,但對於絕大多數的系統,PHP是不會殺你明智的性能。

2

我在我的生產服務器上使用APC,開箱即可使用。編譯並將其添加到PHP中,並沒有太多的調整。我每隔一段時間檢查一次,只是爲了回顧統計數據,但由於我使用MVC,所有主要文件(路由器,控制器等)很少在每天的基礎上進行更改,以便代碼保持編譯並且運行效率非常高。

1

目前我們使用apc,免費,只是一個簡單的即插即用在我們的服務器上。爲我們的網站提供了巨大的性能提升,特別是隨着項目規模的增加。我也禁用了apc.stat,因此它不檢查代碼是否已更新,所以無論何時我們需要更新實時網站上的代碼,我們都會重新啓動apache。

1

我使用APC,並且可以證明,如果您保持高緩存命中率,它可以顯着減少應用程序服務器上的CPU和I/O負載。它不僅可以避免你編譯,而且可以讓你不必從磁盤讀取php文件。 (即字節碼直接從主內存中提供,因此速度非常快)它降低了渲染單個頁面的速度,並增加了服務器每秒可處理的請求。

如果您使用的RedHat或CentOS的,安裝APC是超級簡單:

yum install php-devel httpd-devel php-pear 
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini 
# if you're using SELinux: 
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so 
/etc/init.d/httpd restart 

你問缺點。唯一的缺點是它需要一些內存。 APC上的默認值是30MB,但可以調整,並且一點點內存的成本超過了本身的速度和響應速度。

1

BlaM的測試包括WordPress所做的所有數據庫調用。當您撥打更少的數據庫電話時,您會發現操作碼緩存的性能提升更加顯着。

+0

同意。我也有其他一些測試。但我決定去「真實世界」的例子;) – BlaM 2009-05-19 08:16:14