2010-04-20 65 views
35

我一直是CakePHP的粉絲和用戶,現在已經有2.5年了,但是大多數開發人員在框架中的主要bugBar是它速度很慢,並且調度週期太長以至於無法實現爲生產環境提供可行的解決方案。加速CakePHP

我希望這個問題能夠激發人們分享他們的提示,技巧和黑客來加速CakePHP的性能。

我經常提到的博客帖子就在這裏,http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps哪位有很棒的提示,但是一定要有更多!

所以請隨時分享您的想法,使這個更加靈活的優秀框架!

+0

鏈接到你所提到的博客文章了!有人可以發佈更新的鏈接?我已經google沒有運氣 – hectorg87 2013-02-15 17:44:07

+1

有人需要告訴馬特!代替,這裏是Web Archive版本。 http://web.archive.org/web/20120423115453/http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps – 2013-02-15 21:14:51

+1

值得注意的是,PHP 5.5.6具有重要意義隨着array_merge()的改進,性能提高。 – 2013-11-22 15:52:55

回答

28

我認爲這是一個非常好的問題。以下是我爲加快蛋糕應用程序所做的一些事情。

  1. 正如鏈接文章的評論中提到,砍伐$uses陣列上幫助了一點。您可以通過查看其關聯來訪問關聯的模型。因此,如果城市和地址在相關的,你可以通過訪問$this->City->Address,而不是既包括$uses陣列

  2. 在Apache中的,從你的.htaccess移動代碼到主服務器配置/虛擬主機/不管,並設置AllowOverride None地址。

  3. 在負載平衡的環境中,將會話從數據庫移至memcache。 Memcache很容易設置,蛋糕的DB會話類還有很多不足之處。在高負載應用程序中,垃圾收集會殺死你,因爲它每秒鐘都會運行。此外,這裏有一個偉大的小腳本,爲您提供有關內存緩存使用情況統計信息(基於apc.php的) http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/

  4. 正如馬克的故事在8個方面文章的評論部分提到,壓縮你的資產是一個很好的理念。這是一個很好的腳本,它可以將js和css文件都縮小,這些文件可以用來替換與Cake一起捆綁的默認css.php。 http://www.milesj.me/blog/read/32/CSSJSAsset-Compression-In-CakePHP

  5. 如果由於某種原因人打圖像/ CSS/JS的很多不存在了,它可能是有益的,以確保這些網頁不會產生蛋糕404錯誤,因爲它要經過整個蛋糕調度過程,生成會話等。這是因爲改變這個簡單:

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
    

    這樣:

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/(img|css|js)/(.*)$ 
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
    
+0

grrr。我不太確定爲什麼我的格式變得如此糟糕。 – JoeyP 2010-04-21 17:18:14

1

無論是CakePHP和其他的東西,只是得到一個更強大的服務器,更多的GHz和內存。價格每年都會降低。雖然如果你在使用VPS,但我知道事情可能會很緊張。

有時新的硬件比支付某人對代碼進行優化便宜...

+0

這就是爲什麼我們大多數人都「聰明」地使用CakePHP。使用緩慢的框架結合kickass硬件,它甚至不會有問題。但是發展事務的時間,每個小時都花費很多錢。這就是快速發展的起點。所以我經常看到人們在錯誤的結尾進行優化。正確的答案仍然是已經選擇的答案,因爲問題可能仍然是如何優化代碼性能(並使用相同的硬件)。 – mark 2013-11-23 16:26:06