2013-02-27 58 views
1

我正在一個網站上有一箇舊的,基於CGI + Perl的可嵌入小部件。我們把小部件加快速度,和我想知道用什麼模式/方法緩存,如果人們知道比其他兩個部分的方法,我在想:時髦緩存與Memcache相比...?

  1. 質樸緩存:小部件的設置保存在獲得參數中,並且使用重寫,如果PHP不存在,我們將創建該文件;然後,Apache將爲後續請求提供該文件,直到cron將其清除。
  2. Memcache/d:PHP可以將結果存儲在Apache可以從守護進程中拉出的Memcache中(我假設)。我想可以這樣做,但我在有關文件/類型和標題等

我用#1在許多場合的時刻不確定的,#2聽起來像它可能是一個有趣的選擇(如果可以辦到)。在這種情況下還有其他好的替代方案嗎?我們在一個標準的LAMP專用服務器上。

的目標是在較大的站點嵌入部件(我們一直在處理某事),以儘量減少服務器負載...

添加/結論

好吧,雖然我很欣賞Piontek的努力在解決方案,似乎沒有其他的東西(任何人共享)。然而,我們已經意識到,處理這種情況的最有效的方式是僅生成一個文件,並讓客戶端處理構建生成的小部件的get參數和邏輯。

+0

只是爲了澄清;我不知道我們可以在哪裏優化PHP或數據庫調用,但是對於該過程的結果來說,這將是一個很好的緩存策略。 – 2013-02-28 18:02:54

回答

0

爲了達到最佳效果,我將使用Memcache和APC(http://php.net/manual/en/book.apc.php)。 Memcache更多用於緩存數據庫查詢並提高這方面的性能,而APC則更多用於提高PHP代碼的性能。他們一起可以給你一個非常可擴展的系統。

+0

謝謝Piontek,我不確定爲什麼我沒有想到APC。但在我們的例子中,我猜想時髦的緩存會更快,因爲它在文件創建後繞過PHP,留下簡單的文件服務和apache的工作。因此,該過程可能是: 1 - PHP + memcache + APC用於第一次構建(時髦樣式)。 2 - 用於後續請求的Apache +文件。 3 - Cron rms文件,我們返回#1 – 2013-02-27 17:31:32

+0

如果你真的關心性能,我建議看看PHP的HipHop。 HipHop是一款「源代碼轉換器」,旨在通過將PHP代碼轉換爲C++代碼來減少CPU和內存使用量。 – Kyle 2013-02-27 20:22:06

+0

感謝@Piontek Media,我也曾考慮過這個問題,但我的問題並不是關於操作碼緩存,甚至是使用編譯器。除非你認爲這可能比Apache服務一個平面文件更快? – 2013-02-28 05:16:53