2012-10-20 34 views
0

我正在完成一個非常複雜的web應用程序的收尾過程,這個應用程序很快就會進入測試階段。我的PHP編碼風格涉及編寫通過需求語句在不同「容器」腳本中重用的小分數據。在過去,我使用eAccelerator來加速我的腳本,並且結果非常令人印象深刻(我通常得到了x 4的改進)。然而,目前的應用程序是在不同的聯盟,並有可能吸引更多的用戶比我以前做的任何事情。我正在建立我在服務器上可以做的事情,以提供流暢和快速的用戶體驗。我從來沒有使用Zend服務器之前(而且它確實有一個陡峭的要價),所以我想最好還是讓它是否可能能夠幫助任何以下Zend Server會在這裏有用嗎?

  • 的繼續忍受一些反饋我「使用&重複使用的PHP腳本」編碼風格和我的mySQL數據庫的分數。
  • 提供更好的bug跟蹤/錯誤報告/監視
  • 加速性能
  • 概要分析來確定的時間最長執行我的代碼位/可以與調整等

我做只是下載了試用版的Zend Server的Windows版本來試用我的本地WAMP安裝。然而,在我開始之前,仍然只有一天24小時,因此知道我是否在這裏咆哮錯誤的樹是有用的。任何提示將不勝感激。

回答

1

在我看來,它絕對值得一試。它具有一些獨特的功能,您可能無法輕鬆使用其他可能對未來有益的配置/產品。

爲了解決你的觀點:

  • 繼續生活在我的「使用&重複使用PHP腳本的分數」編碼風格和我的MySQL數據庫。

    它肯定不會有你的重用包含文件的問題。更多細節,當我達到性能。

  • 提供更好的bug跟蹤/錯誤報告/監視

    是。 code tracing功能非常適合追蹤錯誤。通過管理界面,您可以在一個地方清楚地看到來自所有服務器的PHP錯誤消息,而無需通過日誌文件進行挖掘。

  • 加速性能

    如果啓用字節碼緩存,你會看到改進的性能就像你看到eAccelerator在。字節碼緩存將使加載您的經常需要的腳本比使PHP在每個請求上解析它們要快得多。另外,您可以利用緩存API來緩存數據庫查詢的結果(本地無需設置Memcached或文件緩存)。

  • 概要分析來確定的時間最長執行我的代碼位/可以與調整等做

    代碼跟蹤爲您提供了一些這方面是特別有用在生產環境中。但是你總是可以使用諸如XDebug或Zend Debugger之類的東西來進行更高級的代碼分析。

另一個不錯的功能是session clustering。這聽起來似乎不會需要很長時間才能運行多個Web服務器。當你確實得到這一點時,確保你的PHP會話可用於所有服務器不會是一個問題,你不必設置數據庫或memcached會話處理程序,你可以使用Zend服務器會話管理器,確保如果服務器關閉時,在該服務器上創建的任何會話數據都可供其他人使用。

這不是說你不能使用其他免費產品獲得所有這些東西,但取決於你的預算和時間表,它可以簡化大量的技術考慮,並由一個產品進行管理,而不必支持幾種產品來確保您的網站的運作。如果這對你有價值,那麼它可能是值得考慮的。

此外,您可以支付額外的支持。我對Zend電話支持沒有經驗,因此我無法對此發表評論,但您可以選擇讓某人提供幫助。

+0

謝謝你的綜合答案。我還有一個問題 - 在過去,我使用memcached將PHP會話管理機制更改爲「內存」,並且在性能方面已經有了巨大的改進。在各行之間讀取你似乎暗示的是,在運行Zend Server的情況下,我將不必使用memcached來提供該功能? – DroidOS

+0

我認爲會話集羣實際上是Zend服務器集羣管理器的一部分,所以我可能會在那裏出現錯誤。這是額外的成本。但是如果你要使用它,那麼是的,它會將會話存儲在多個服務器上的冗餘內存中。在使用Zend Server時,您可能仍然希望使用會話冗餘的memcached。 – drew010

+0

謝謝你! 1234 – DroidOS

1

它可能有幫助,但它不一定是最好的選擇。

關於更好的錯誤跟蹤和錯誤報告,它取決於你已經有很多。如果你長期以來一直在使用機械師,而且習慣了這種技能,通常改變它會導致一些問題或延遲,再加上你的機械師可能是非常好的。

關於得分,應該沒有問題,因爲您仍然會記錄文件的使用情況。

關於剖析,再次它取決於你已經到位的。

關於性能,個人而言,我認爲使用已經提到的內容以及良好的編程實踐並不會更好,而且我也沒有談論腳本的微基準,而是正確使用循環,你並不需要,避免循環,避免文件或外部資源的雙重檢查等

如果在本地測試你會發現一個很大的進步,那麼你就可以決定使用它,或者花時間去分析報告並決定是否改進可以用更好的代碼,使用緩存,更好的.htaccess或使用頭文件來實現,或者使用Zend的。

+0

謝謝。有一系列的意見總是有用的:-) – DroidOS