天天看點

PHP和.net測試環境大比拼

所有的測試都在同一台機器上運作(擁有4G記憶體和60G 7200轉硬碟的Toshiba Tecra M5)。

Ubuntu 9和Windows Server 2008标準版分别安裝于獨立(但相同)的硬碟中。

Linux使用Apache2,Windows使用IIS 7作為各自的Web伺服器。

雙方的作業系統都進行了完整的patch或更新。

雙方的系統和運作時都沒有進行額外的性能增強。

從實驗結果上看,PHP在Linux和Windows的執行性能各有千秋:

純粹的語句執行在Windows上表現更好。

函數調用在Windows上更快。

對象的建立和通路,對于PHP 5.2來說在Linux上更快,但是對于PHP 5.3來說則是Windows更快。

類庫調用在Linux上快得多(如在Ubuntu上進行加密要比Windows要快3到5倍)。

Linux與Windows平台對比

zj-weiye,杭州有線電視,螺杆泵,Sterilization Pouch,hz

在Linux上通路檔案性能略高于Windows,不過Windows上檔案複制的性能要比Linux慢60%,可能是ACL進階安全的緣故。

在Linux上通路MySQL要比Windows快不少,而且在Windows上運作PHP 5.3的情況則更為惡劣(不過從下面PostgreSQL的情況上來看,這應該是糟糕實作的緣故)。

PostgreSQL在兩個平台上的性能非常接近(1000個操作的差距在0.06秒之内)——無論是PHP 5.3還是PHP 5.2,Windows上表現都略勝一籌。

Windows上PHP 5.2通路MS SQL Server的性能稍遜于在Linux上通路MySQL(此時還沒有面向PHP 5.3的SQL Server支援)。

對于純粹的PHP執行性能來說,Linux和Windows相差無幾,這不會成為選擇Linux或Windows作為部署平台的決定性因素。如果你在建構一個應用程式,那麼PostgreSQL可能是更好的選擇。因為它在兩個平台上的表現都很優秀。

如果你的應用程式必須使用MySQL,那麼選擇Windows就需要早些計劃擴充性問題了。

PHP的第一個版本的SQL Server驅動程式要比MySQL或PostpreSQL要慢一些,但這應該不會成為問題。第二個版本的驅動器正在開發之中,它會帶來性能提升。

在Joe看來,全面來看,PHP和IIS團隊在執行性能上已經做的非常成功,接下來就需要各開源程式的團隊(Drupal、WordPress、Joomla等等)為各平台進行性能優化了。

不過,除了檔案複制操作之外,ASP.NET在性能方面全面領先于PHP(無論部署在Linux還是Windows上面):

Linux上通路MySQL的性能稍稍優于Windows上通路SQL Server的性能(使用普通的資料類型和SELECT語句)。但是這裡的差距幾乎可以忽略不計。

ASP.NET(C#)操作,如對象使用,類庫調用等等,其性能都遠高于PHP。

使用ASP.NET隻是因為喜歡Visual Studio IDE”——個人認為Visual Studio是最有生産力的開發工具。但是,PHP的有不錯的選擇。我使用Zend Studio,PHPEd,Komodo,Delphi for PHP,這些都很不錯。

應該比較ASP的性能——舊式的ASP與目前的PHP與ASP.NET差距太大了。做這種比較,似乎是在建議使用ASP開發新項目。

32位與64位系統對比

32位與64位系統之間的比較——這些測試的目的并不是為了展現64位系統上的性能差距。

應該使用Windows上的Apache進行測試——Apache是Linux上的伺服器,不過我認為如果你在Windows上不使用IIS 7則會損失太多太多東西了。

有辦法在Win2K8中,在不損失安全性的前提下加快檔案複制性能嗎?似乎不行。這涉及到Windows伺服器上的ACL系統。可能會測試通過資料流讀取檔案的性能,有些東西的性能可能會有所改善。不過,Web應用程式一般不會程式設計來複制大量檔案。

PHP一直是,也永遠隻是一個半專業性質的環境,這種說法狗屁不通。PHP平台上有許多專業的,高品質的應用程式,也有很多非常尊敬的開發人員。是否專業是開發人員的問題,不是PHP或ASP.NET的問題。

個人認為比較沒有opcode緩存的PHP很不公平,.NET是編譯執行的,而PHP需要每次都解釋并‘編譯’頁面”——我同意這個測試可能不夠完整,測試PHP的方式,就和下載下傳安裝的方式一樣。虛拟主機也沒有安裝op-code緩存。而事實上,ASP.NET自帶這個特性也并不意味着測試是不公平的,這是因為PHP缺少這個特性。

說PHP不是一個‘專業的’語言很沒道理,因為幾乎所有最大的站點都是用PHP建構的——這種說法是沒道理,不過說那些站點幾乎都是用PHP建構的也是錯誤的。有些是,有些不是。

如果你們看到這一資料之後對ASP.NET信心倍增。如果我不認為.NET是開發Web應用程式來說是一種更好的選擇——至少不屬于其它平台。

但是……如果你因為這些資料而忽視PHP,也是錯誤且幼稚的行為。從純技術角度來說,.NET遠比PHP強大,但這并不意味着PHP不夠強大。PHP的力量展現在衆多的應用程式以及可用的架構。

轉載于:https://www.cnblogs.com/webearly/archive/2011/04/29/2032952.html