2011-01-10 91 views
0

我正在轉換php以從性能原因的cgi模式運行到模塊模式。php模塊 - 代碼只需要執行第一次登錄就像java

在CGI模式下,php代碼每次都在執行。我有這樣的感覺,這個轉換 php代碼將像Java一樣運行在內存中。這意味着如果用戶類在用戶第一次登錄時被實例化,它將作爲內存中的類保留。但它似乎並非如此。所有代碼 需要每次執行。

有沒有辦法像java一樣運行PHP?

感謝

+0

你究竟想要做什麼? – 2011-01-11 00:33:01

回答

0

我不是你的問題完全清楚,但如果你問緩存php文件的字節碼,以減少加載時間,我會考慮使用APC(http://php.net /manual/en/book.apc.php)。

它會緩存你的php的字節碼,並顯着減少加載一個未修改的類所需的時間。

+0

我看着APC,它幫了很大忙。代碼速度提高了50%。 – 2011-01-12 04:47:09

+0

我對APC有另一個問題。不知道我是否應該創建一個新的線程。我希望理想情況下有2個緩存 - 一個靜態的通用包含和第二個基於請求動態構建/刷新。我只看到緩存可以是完全動態的(當新的緩存被添加時,舊的頁面會被刷新。apc.user_ttl ne 0)或者靜態的(當緩存第一次滿時,不會再添加頁面apc.user_ttl = 0)。另外理想情況下,我喜歡在httpd服務器(通過php模塊)啓動時預加載頁面,但它看起來不像這個選項可用(嘗試apc.preload_path,但似乎不工作)。謝謝 – 2011-01-12 16:56:59

2

不,PHP的模塊版本與CGI版本在這方面的工作方式相同,因此您不能在請求之間保留「內存」類。

因此,您仍然需要在請求之間存儲/序列化數據,這意味着使用會話,因爲每個請求都將由「新」腳本處理。

你想使用「應用服務器」,但PHP不能這樣工作(AFAIK),並且PHP Apache模塊不是應用服務器。