我們都一定對(duì)比過編程的輕松與簡(jiǎn)單性。雖然我們都確認(rèn)php和perl是最容易學(xué)習(xí)和編程的語(yǔ)言,但我仍舊想知道,如果用php、asp、jsp以及perl分別編寫一個(gè)同樣的程序,哪一個(gè)將最快。
進(jìn)行這樣的對(duì)比依賴于操作系統(tǒng)和硬件設(shè)備。對(duì)于我來說,在linux/apache上運(yùn)行php是非常快的,即使機(jī)器屬于低端Pro類型。當(dāng)然,每個(gè)人都知道linux是多么的穩(wěn)定與快速。IIS上的ASP運(yùn)行可以非常快,但是也要求相當(dāng)高的硬件性能。
至于Java,許多編程者都一直在抱怨它怎么會(huì)這么慢 … 有一個(gè)報(bào)告叫做“volano”,從中你可以找到各種JDKs和Servlet引擎間在性能上的區(qū)別。
但是也要看到,現(xiàn)在由于“Java”的大肆宣傳,每個(gè)人都在研究Servlets/JSP 或者 EJB(這可以從工作招聘中的調(diào)查得到)。所以,如果你從身無分文開始工作,PHP或者Python/Zope將是最好的選擇。但是如果你就職于一個(gè)目標(biāo)遠(yuǎn)大的公司(幾千美元對(duì)他們來說是無所謂的),你就會(huì)有許多種選擇。
在企業(yè)級(jí)計(jì)算機(jī)環(huán)境中開發(fā)應(yīng)用程序要面臨許多特殊的挑戰(zhàn):多后臺(tái)線程是標(biāo)準(zhǔn),代碼資源必須是可管理的、可維護(hù)的并且能被多代開發(fā)人員所重用。
即使有了這些限制,IT管理人員仍舊要面臨巨大的壓力去快速開發(fā)新項(xiàng)目。當(dāng)這些工程發(fā)生在Web上時(shí),腳本語(yǔ)言就經(jīng)常是較好的選擇。
做為評(píng)估的一個(gè)商業(yè)案例,eWEEk實(shí)驗(yàn)室模擬了一個(gè)試驗(yàn),假設(shè)為了intranet的發(fā)展需要設(shè)計(jì)一個(gè)新的、相對(duì)小型的Web應(yīng)用。我們限制預(yù)算在幾千美元,以及一個(gè)星期的開發(fā)時(shí)間。
測(cè)試中,我們使用了2個(gè)同樣的Dell計(jì)算機(jī)公司的OptiPlex GX1p 系統(tǒng),每個(gè)機(jī)器的CPU都是Pentium III 550MHz、內(nèi)存 384MB。
一個(gè)服務(wù)器運(yùn)行Windows 2000 Server,并且安裝了Service Pack 1。我們?cè)谄渖蠝y(cè)試Allaire公司的ColdFusion Server Professional 4.5.1以及Microsoft 公司的ASP (Active Server Pages) 5.0。另外一個(gè)服務(wù)器運(yùn)行Red Hat 公司的Red Hat Linux 7.0,其上測(cè)試Apache 公司Tomcat 3.2 Beta 5 以及 PHP 4.02。
在開發(fā)速度、易用性以及完整、強(qiáng)大的API使用等方面,ColdFusion最終鶴立雞群。
我們也推薦使用JSP (JavaServer Pages),它由Tomcat 描繪,對(duì)于企業(yè)級(jí)應(yīng)用是一個(gè)好的選擇。ASP和PHP也能做同樣的工作,但它們不是我們第一選擇。
為了測(cè)試Web頁(yè)面性能并且測(cè)試穩(wěn)定性,我們使用了Quest軟件公司的Benchmark Factory load測(cè)試和穩(wěn)定計(jì)劃工具。Quest軟件可以從www.quest.com得到。
盡管性能有所不同,但我們相信每個(gè)產(chǎn)品對(duì)于小型工程都是足夠快的,在那里純腳本應(yīng)用是有實(shí)際意義的。關(guān)于這個(gè)測(cè)試的更多信息,包括代碼以及性能細(xì)節(jié),發(fā)布在www.eWEEK.com/links JSP
Sun微系統(tǒng)公司一直努力地普及它的JSP腳本語(yǔ)言,并給Apache組織貢獻(xiàn)有關(guān)JSP和Java Servlet引擎的代碼。Apache組織將這些代碼發(fā)布為一個(gè)Apache產(chǎn)品,叫做Tomcat。
JSP相對(duì)來說還是一個(gè)新技術(shù),但是已經(jīng)有了明確的市場(chǎng)方向。
然而,由于JSP基于Java(并且?guī)缀跄茏龅絁ava可以做的任何事情,這就開放了一個(gè)巨大的API庫(kù)以及類庫(kù))而且由于被稱為標(biāo)記庫(kù)的JSP擴(kuò)展使JSP能模仿ColdFusion的標(biāo)記類型API,因此我們有理由認(rèn)為,在未來幾年中,JSP將成為Web腳本語(yǔ)言的核心。
還有更多種類的產(chǎn)品支持JSP,它們適用于高端應(yīng)用服務(wù)器,這就讓JSP開發(fā)人員能更容易地考慮擴(kuò)展性和容錯(cuò)性。
由于JSP基于Java,而Java是一個(gè)功能強(qiáng)大的類型語(yǔ)言,所以當(dāng)需要時(shí)我們就必須定義變量的類型。對(duì)于非程序員學(xué)習(xí)起來,這就是一個(gè)困難,盡管了解一些Java的人認(rèn)為JSP幾乎可以很快上手。
利用Java數(shù)據(jù)庫(kù)連通性,Java具有一個(gè)靈活且完整的訪問數(shù)據(jù)的API集。
在服務(wù)器端,我們測(cè)試了Apache 組織的免費(fèi) Tomcat 3.2 Beta 5版本。測(cè)試服務(wù)器是Linux的情況下,Tomcat的速度大約是每秒13頁(yè)。
很不幸,Tomcat只具有很基本的性能監(jiān)視器和管理工具(在Web上我們也許能找到一些beta產(chǎn)品),這與PHP類似。位于高端的基于Java的應(yīng)用程序服務(wù)器則提供了豐富的管理工具。
盡管Sun的Java 1.0 Community 版本的長(zhǎng)處是免費(fèi)的,而且非常適于JSP開發(fā)環(huán)境,但實(shí)際情況是,在JSP領(lǐng)域,開發(fā)工具通常很短缺。
對(duì)于企業(yè)級(jí)開發(fā),我們相信,JSP技術(shù)盡管很新,但仍舊是正確的選擇,因?yàn)樗褂昧薐ava,而且許多應(yīng)用服務(wù)器產(chǎn)品都支持JSP。Microsoft ASP
在團(tuán)隊(duì)開發(fā)環(huán)境中,微軟公司的ASP(active server pages)語(yǔ)言是眾所周知而且非常好的Web腳本技術(shù),這也意味著ASP開發(fā)人員非常容易發(fā)現(xiàn)。由于ASP是隨Windows NT 服務(wù)器和Windows 2000 Web服務(wù)器安裝自帶的,所以這項(xiàng)技術(shù)也是非常流行的。
由于支持未定義類型變量(untyped),ASP使得編程很簡(jiǎn)單。而且通過支持Microsoft COM(Component Object Model:組件對(duì)象模型)標(biāo)準(zhǔn),它提供了訪問巨量Windows API集的簡(jiǎn)單方法。這也是一個(gè)雙刃劍,在提供簡(jiǎn)單訪問強(qiáng)大的COM對(duì)象同時(shí),ASP代碼也很復(fù)雜而且難于編寫。微軟公司的ADO(Active Data Objects)COM接口提供了全面數(shù)據(jù)庫(kù)訪問API。
微軟同樣投入大量資金在ASP的clustering技術(shù)上,并且即將到來的微軟應(yīng)用程序中心服務(wù)器將提供對(duì)ASP站點(diǎn)的clustering技術(shù)和內(nèi)容管理功能
編寫ASP時(shí)使用VBScript語(yǔ)言,我們希望它具有try/catch關(guān)鍵字。沒有這些,編寫錯(cuò)誤處理邏輯程序是非常討厭的,因?yàn)槲覀儽仨毷止z查看看是否發(fā)生錯(cuò)誤(ASP也支持Jscript,它具有try/catch關(guān)鍵字)。
ASP開發(fā)工具是很多的,而且通常是很成熟的。我們使用微軟公司的Microsoft Script Editor(隨Microsoft Office自帶)編寫頁(yè)面,發(fā)現(xiàn)這個(gè)工具非常有價(jià)值,因?yàn)樗哂幸粋(gè)方便的編輯環(huán)境以及一個(gè)完整的調(diào)試器。
我們的ASP站點(diǎn)是運(yùn)行Windows 2000的服務(wù)器,速度大約是每秒43頁(yè)。
另見:ASP與JSP的比較
PHP
Php做為首選的Linux Web腳本語(yǔ)言迅速浮現(xiàn)出來。隨著今年P(guān)HP4的發(fā)布,它尤其具備了大量的新功能,其中包括一個(gè)新腳本引擎和語(yǔ)言的標(biāo)準(zhǔn)化關(guān)鍵字部分(比如HTTP會(huì)話管理),這在以前是以add-on模塊的形式存在的。
PHP開發(fā)小組的PHP語(yǔ)言是開放式的,并且可以安按照源代碼形式下載。適用于Windows的預(yù)編譯二進(jìn)制碼也是可用的,而且PHP可以工作在許多Web服務(wù)器上,包括Apache和微軟的IIS。
PHP確實(shí)是幾種強(qiáng)大功能的混和物,包括Perl、C、Java,甚至某些ASP,并且支持未定義變量使得開發(fā)工作簡(jiǎn)化。PHP非常易于擴(kuò)展,由于源代碼可用,使得各種各樣的模塊擴(kuò)展程序被一大群人開發(fā)并貢獻(xiàn)出來,這些擴(kuò)展程序包括:數(shù)據(jù)庫(kù)鏈接、郵件應(yīng)用、XML解析器等等。
豐富的擴(kuò)展也導(dǎo)致了缺乏API方面的一致性。用戶們必須努力約定他們使用的PHP組件,從而有效跟蹤相關(guān)的改變。
我們重點(diǎn)關(guān)注PHP在標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)API上的匱乏:為了訪問Oracle數(shù)據(jù),我們就必須直接編寫調(diào)用Oracle8 API的代碼,這使得頁(yè)面很不輕巧并且增加開發(fā)費(fèi)用。在這個(gè)領(lǐng)域正在進(jìn)行一些研究,其中包括將Micorsoft的ADO轉(zhuǎn)向PHP。
同樣,PHP缺乏完整的開發(fā)環(huán)境工具以及調(diào)試程序(我們只能找到一個(gè),就是Ives Development 公司的Nexidion Designer,它還停留在1.0版本)。
在測(cè)試的Linux服務(wù)器上,PHP擁有大約每秒47頁(yè)的速度。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!