簡體   English   中英

PHP與長期運行的進程(Python,Java等)?

[英]PHP vs. long-running process (Python, Java, etc.)?

我想對使用PHP編寫Web應用程序而不是使用Django或Turbogears for Python等工具進行長時間運行的過程表示您的意見。

據我所知: - 在PHP中,頁面每次都從硬盤中提取(雖然我假設操作系統在訪問后將文件保存在RAM中一段時間​​) - 每次都會將頁面重新編譯為操作碼(盡管來自例如Zend的工具可以將編譯版本保存在RAM中 - 每次獲取頁面意味着每次都讀取全局和會話數據,並重新打開與DB的連接

因此,我認為PHP在共享服務器(共享同一主機的多個站點)上運行適度使用的應用程序是有意義的,而長期運行的流程可以提供更高的性能,在專用服務器上運行並且使用頻繁的應用程序?

感謝您的任何反饋。

在應用memcache,操作碼緩存和連接池之后,PHP和其他選項之間唯一真正的區別是PHP是短暫的,基於處理的,而其他選項通常是基於長期多線程的。

PHP的優點是編寫腳本很簡單。 您不必擔心內存管理(它總是在請求結束時發布),您不必非常擔心並發性。

無論如何,我可以看到的主要缺點是,一些更高級(有時更瘋狂?)的事情更難:預先計算結果,加熱緩存,重用現有數據,請求優先級和異步編程。 我相信人們可以想到更多。

但大多數時候,這些缺點並不是什么大問題。 您可以通過添加更多計算機和使用更多緩存來擴展。 一般的Web開發人員不需要擔心並發控制或內存管理,因此從刪除它們中獲取微不足道的打擊並不是什么大問題。

  • 使用APC ,很快就會將其包含在PHP中,編譯后的字節碼保存在RAM中。
  • 使用mod_php,這是使用PHP的最流行的方式,PHP解釋器保留在Web服務器的內存中。
  • 使用APC數據存儲內存緩存 ,您可以在RAM中擁有持久對象,而不是通過從數據庫中獲取數據來重新創建它們。

在現實生活中,您將使用以上所有內容。

在我看來,PHP適用於任何一種用途,性能開銷很少被注意到。 通常會有其他過程延遲程序。 使用eAccelerator之類的東西很容易緩存PHP程序。

正如許多其他人所指出的那樣,PHP和Django將成為你的瓶頸。 在硬盤上點擊PHP上的字節碼對於流量大的網站來說是無關緊要的,因為緩存將在那時接管。 Django也是如此。

模型/視圖和用戶體驗設計將比語言本身具有數量級的性能優勢。

PHP是一種像Java等語言。只有你的可執行文件是php二進制文件,而不是JVM! 您可以為PHP-Scripts設置另一個MAX-Runtime而不會出現任何問題(如果您的共享托管服務提供商允許您這樣做)。

應用程序運行的位置不應取決於服務器的類型。 它應該取決於應用程序使用的資源(CPU時間,RAM)以及服務器/ Vserver /共享主機給出的內容!

出於性能調優的原因,您應該查看eAccelerator等.Apache還支持連接池模塊! mod_dbd 如果需要擴展(如在集群中),可以使用像memcached這樣的分布式內存緩存系統!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM