發信人: yooza (低等動物), 信區: cs93b
標 題: [轉載] ASP、PHP、JSP之效能比較
發信站: 淡江資工地上站 (Sun Oct 24 14:52:05 2004), 轉信

ASP:ActiveX Server Page

ASP我們先來談談它,因為ASP是到現在開發人郡最廣的一個技術了,所以想來大家也會對
它最關注。ASP是一個近乎完美的想法,可是因為MS一個大的環境的問題所以在一些方面
反回使它縮小在了一個小的框架中,如果它能更好的跳出這個框架,我想由它現在的基礎
將無人可比。

ASP更精確的說是一箇中間件,這箇中間件將Web上的請求轉入到一個解釋器中,在這個解
釋器中將所有的ASP的Script進行分析,再進行執行,而這時可以在這箇中間件中去創建
一個新的COM對象,對這個對象中的屬性和方法進行操作和調用,同時再通過這些COM組件
再完成更多的工作。所以說,ASP強大的不在於它的VBScript, 而在於它後台的COM組件
,這些組件來無限的擴充了ASP的能力。

強勢:

1、簡單易學。Basic有誰不會?很少會有人舉手,所以有人在說這個開發基礎是最廣的。
而且MS有一向做的非常好的聯機手冊,本地化語言的幫助,同時非常快的出現教學書籍,
這樣會大大方便開發人員的學習和對技術的深入研究。

2、安裝使用方便。裝好一個Windows 2000,祇要你安裝了IIS哪麼ASP就可以使用了,從
沒有什麼需要你花心思去配置的。而說實話,ASP的調優也不難做,而要做到最細時也不
是一般人能做的了的。

3、開發工具強大而多樣。這個我不用說了,可以說的就是我以前使用VB中的Web Class開
發出的Web應用一點不差,當時讓許多人大吃一驚,VB也能做ASP上的應用!!!其實這正
說明瞭ASP開發工具的多樣化,同時牠們的功能也很強,這一點已經被許多程序員所津津
樂道。易用、簡單、人性化,這本就是微軟的強項喲。

4、效率高。在低的訪問量下,ASP能體現出一定的效率,這時它對機器的要求並不高。

弱勢:

1、Windows本身的所有問題都會一成不變的也累加到了它的身上。安全性、穩定性、跨平
台性(Win2K已經不再支持Alpha了)都會因為與NT的綑綁而顯現出來。

2、ASP由于使用了COM組件所以它會變的十分強大,但是這樣的強大由于Windows NT系統
最初的設計問題而會引發大量的安全問題。祇要在這樣的組件或是操作中一不注意,哪麼
外部攻擊就可以取得相當高的權限而導致網站癱瘓或者數據丟失。

3、由于ASP還是一種Script語言所沒除了大量使用組件外,沒有辦法提高其工作效率。它
必須面對即時編繹的時間考驗,同時我們還不知其背後的組件會是一個什麼樣的狀況。

4、無法實現跨操作系統的應用。當然這也是微軟的理由之一,祇有這樣才能發揮ASP最佳
的能力。可是我卻認為正是Windows限制了ASP,ASP的概念本就是為一個能讓系統運行於
一個大的多樣化環境而設計的。

5、還無法完全實現一些企業級的功能:完全的集群、負載均橫。

總結:

適用人群:熟悉MS架構的人員。想用最短的時間學習,同時想用最簡單的方式完成自己的
應用。

適用平台:Windows系列平台適用應用:企業內部管理信息系統、中小Internet應用、快
速數據庫開發的應用。

學習方式:IIS 4 Online Help(中文)MSDN Lib相關知識市場上眾多的ASP書籍

推荐開發工具:Visual InterDev/Home Site/Front Page

推荐開發環境:Windows 2000 Server/MS SQL

推荐應用環境(最少):Windows 2000 Server/MS SQL 7/PIII 500/256M RAM/18G HD

======================================================

PHP:Personal HomePage

PHP是一個什麼原因出現的呢?它是一個技術人員希望能用一個快速的方面來完成他自己
的個人主頁中的一個小應用。而在他一發不可收時出現了php,它使一個人能在多種操作
系統下迅速的完成一個輕型的Web應用。所以在短短的幾年裏,php迅速的升級了它的版本
,同時在GNU的世界裏找到了一個青梅竹馬的伙伴—-Apache。這終於讓php有了基礎,能
在一個最佳的環境中運行,同時由于兩個產品都是公開源代碼的產品,所以大家可以使用
牠們的源代碼將這兩個產品用最完美的方式結合到一起,使用起來就如一個產品一樣。個
人認為php是自由軟件在web應用平台上一個決勝的工具,如果沒有php的出現,還會有許
多人認為自由軟件就代表了對開發人員的高技術要求、難記的代碼、複雜的工具…..php
使一個會使用basic的人員在極短的時間裏快迅學習並完成用戶需要的應用。

怎麼說php呢?如果說ASP是一個COM,哪麼php說的更精確了可以說php是一個純粹的Scrip
t翻譯器。這也是php由3升級為4的一個重大原因,在4這個版本裏它重寫了語法分析器,
從而加快了php整體的效能。而且從中你也就會明白為什麼php需要支持這種或是那種擴充
功能時它一定要與相應系統的lib庫進行再編繹的原因。正因為它是正宗的“翻譯器”,
所以它是將script翻譯成為需要執行的函數,再去執行牠們,外部擴充不能由一些“動態
加載”的方式進行,所以只能靜態的編繹進php中(這只能在windows中除外)。

強勢:

1、一種能快速學習、跨平台、有良好數據庫交互能力的開發語言。ASP比不上它的就是這
種跨平台能力了,而正是它的這種能力讓Unix/Linux有了一種與ASP媲美的開發語言。語
法簡單、書寫容易、現在市面上也有了大量的書,同時Internet上也有大量的代碼可以共
享,對于一個初學者想學些“高深的Unix”下的開發來說是一個決好的入手點。

2、與Apache及其它擴展庫結合緊密。php與Apache可以以靜態編繹的方式結合起來,而與
其它的擴展庫也可以用這樣的方式結合(除外的就是Windows平台了)。這樣的方式的最大
的好處就是最大化的利用了cpu時和內存,同時極為有效的利用了apache的高性能的吞吐
能力。同時外部的擴展也是靜態連編,從而達到了最快的運行速度。由于與數據庫的接口
也使用了這樣的方式,所以使用的是本地化的調用,這也讓數據庫發揮了最佳效能。

3、良好的安全性。由於php本身的代碼開放所以它的代碼在許多工程師手中進行了檢測,
同時它與apache編繹在一起的方式也可以讓它具有靈活的安全設定。所以到現在為止,ph
p具有了公認的安全性能。

弱勢:

1、數據庫支持的極大變化。由於php的所有的擴展接口都是獨立團隊開發完成的,同時在
開發時為了形成相應數據的個性化操作,所以php雖然支持許多數據庫,可是針對每種數
據庫的開發語言都完全不同。這樣形成針對一種數據庫的工發工作,在數據庫進行升級後
需要開發人員進行幾乎全部的代碼更改工作。而為了讓應用支持更多種的數據庫,就需要
開發人員將同樣的數據庫操作使用不同的代碼寫出n種代碼庫出來,讓程序員的工作量大
大增大。

2、安裝複雜。由於php的每一種擴充模塊並不是完全由php本身來完成,需要許多外部的
應用庫,如圖形需要gd庫、LDAP需要LDAP庫.……這樣在安裝完成相應的應用後,再聯編
進php中來。這也就是我以前在代碼聯盟新聞組中對網友所說的一定要在FreeBSD/Linux/U
nix下運行php的原因。祇有在這些環境下才能方便的編繹對應的擴展庫。這些都是一般開
發人員在使用php前所先要面對的問題,正是這樣的問題讓許多開發人員轉而使用其它的
開發語言,必竟Unix沒有那麼多的用戶。

3、缺少企業級的支持。沒有組件的支持,哪麼所有的擴充就只能依靠php開發組所給出的
接口,事實上這樣的接口還不夠多。同時難以將集群、應用服務器這樣的特性加入到系統
中去。而一個大型的站點或是一個企業級的應用一定需要這樣的支持的。注:在php的4.0
版本以後加入了對servlet/javabean的支持,也許這樣的支持會在以後的版本中更加增強
,也許這樣的支持會是php以後的企業級支持的起點。

4、缺少正規的商業支持。這也是自由軟件一向的缺點,我想在國內php的開發人員正在快
速增加,相信在不久的將來,這樣的支持能多起來。

5、無法實現商品化應用的開發。由於php沒有任何編繹性的開發工作,所有的開發都是基
於腳本技術來完成的。所以所有的源代碼都無法編譯,所以做完成的應用只能是自己或是
內部使用,無法實現商品化。

總結:

適用人群:熟悉Unix環境,需要在最少的投入下完成快速的應用開發。

適用平台:FreeBSD/Linux/Unix操作系統、Apache服務器適用應用:Internet高訪問量、
快速數據庫開發的應用。

學習方式:Internet上國內豐富的資源Internet上豐富的源代碼資源,完全可以參考這樣
的例程來完成自己的應用。市場上最近出版的好幾本php手冊。

推荐開發工具:Home Site/PHPEd

推荐開發環境:FreeBSD 4.1/RedHat 6.1操作系統/Apache 1.3.12/MySQL 3.22/P 200/64
M RAM/9G HD

推荐應用環境(最少):FreeBSD 3.5/MySQL 3.22/Apache 1.3.12/P 200/128M RAM/9G HD

推荐應用環境(最佳):FreeBSD 3.5/Sybase 11/Apache 1.3.12/P III 500/512M RAM/18G
HD

=====================================================

JSP:Java Server Page

JSP又是什麼原因出現的呢?Java在推向開發人員時出現了重重困難,首先是Java缺少主
流系統的廣泛支持,而在所有的平台和技術上都缺少可以直接參照的應用方式。這時java
就走向了在各個應用層上的積極進取,在自己擅長的與不擅長的領域都走出了堅定的腳步
。其中最讓Web技術人員興奮的就是Java Servlet的出現和JSP的漸漸成熟,這一步步都讓
Java正式的走向了Web開發技術的舞台。Java利用了它的跨平台技術,使java的應用能快
速的部署在各個平台上,而真的可以一處編寫隨處運行。它有較的利用了這個優勢,巧妙
的將java的通用性、jsp的易用性、servlet的速度結合在一起,利用平台部署上的技巧有
效的屏蔽java的速度問題,所以Java迅速的在Web開發人員的團員中推廣開來。攜著Java
Bean、EJB、Java Application Server、Java事務服務器等這樣的強大後台走向了真正的
成熟應用。

Jsp到底是一個什麼樣的語言呢?實際上JSP就是Java,祇是它是一個特別的Java語言,加
入了一個特殊的引擎,這個引擎將HTTPServlet這個類的一些對象自動進行初始化好讓用
戶使用,而用戶不用再去操心前面的工作。同時這個引擎又引入了<jsp:*、<%@等一系列
的特別語法,使用這些語法來進行一些特定的操作,如引用文件、URL轉向、JavaBean引
用等這樣的操作,這些都是由引擎自動幫你完成初始化的工作。我們可以將這個引擎看作
一個Jsp到Java Servlet的生成器或是翻譯器,讓用戶不用再面對複雜的Servlet中的還沒
開始工作就要寫的幾十行代碼。這就是JSP–一個Java Servlet生成器。JSP->Java Servl
et Code(.java文件)->Java Runtime Bin Code(.class文件),這就是為什麼我們第一次
運行JSP時CPU運行能達到很高的原因,它實際上是調用了jsp引擎來生成java文件,再用j
avac來編譯它到class文件,這才能去執行它。同時也說明瞭在第一次運行以後,速度為
什麼哪麼快的原因,祇要這個jsp文件不改變哪麼這個操作就不再會進行了(除非你刪除了
class文件)。所以說,java有什麼jsp就有什麼樣的功能,與asp一樣,jsp的真正力量是
我們永遠看不到頭的!

強勢:

1、一處編寫隨處運行。這是一個程序員的夢想,也是從前的程序員的惡夢,為了在不同
的平台間運行,使許多程序員一行行的重寫代碼。在這一點上java已經給了我最完美的答
案它做的要比php更出色,除了系統之外,你的代碼不用做一點更改的。

2、系統的多台平支持。我已經在差不多所有平台上見到了一致的java servlet/jsp的Web
Server/Application Server……系統它可以讓你在任意環境做開發,在任意環境進行系
統部署,在任意環境擴展。相比asp/php的侷限性是顯面易見的。

3、強大的的可伸縮性。從祇有一個小的jar文件就可以運行servlet/jsp到由多台服務器
進行集群和負載均橫,到多台Application進行事務處理、消息處理……一台服務器到
無數以服務器,Java顯示了一個巨人的生命力。

4、多樣化和功能強大的開發工具支持。這一點與asp很像,java已經有了許多非常優秀的
開發工具而且有許多可以免費得到,並且其中的許多已經可以順利的運行於多種平台之下
。如果你細心的使用牠們會發現比自己第一面看到牠們時的功能要強大的多。

弱勢:

1、與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由于為了跨平台的功能,為
了極度的伸縮能力,所以極大的增加了產品的複雜性。這麼說,它在擴展時需要的分成多
少塊,哪麼java系統中就有多少種產品。所以你要以看到jre、jdk、jsdk、jswdk……,
實際上牠們祇要有效的搭配在一起,就可以產生強大的效能,密不可分,但是對于一位初
學者來說:“有沒有搞錯!難道讓我運行一個jsp就要這麼多亂七八糟的東西!”

2、從出現的第一天起就被對手痛罵的:“慢如老牛”。真的,我在第一次運行我的jsp時
,我竟然以為我的機器死機而將哪個進程給kill了!第一次編繹、運行對于使用者來說真
是一場惡夢,在開發時我經常晚上做夢在看WinNT的任務管理器CPU格全綠時等著降下來的
樣子和感覺。

3、技巧還是技巧。一個短處就一定要付出代價的。Java的運行速度是用將class常駐內存
來完成的,所以它在一些情況下所使用的內存比起用戶數量來說卻實是“最低性能價格比
”了。另一方面來說,它還需要硬盤空間來存儲一系列的.java文件和.class文件以及對
應的版本文件。

4、缺少系統性的資料。這也許不該說,但是sun在國內做的卻實很差勁,java的資烊在國
內極少,到現在我還沒有在書店裏看到一本jsp的書,而對java體系的論述書更是少而又
少,與java相關的書(中文版)到現在不過三位數。而再看看之中大量的具然還在講Visual
J++或是Java 1.1這樣的陣年舊貨。

總結:

適用人群:具有較強學習能力和耐心的開發人員。投入低但是希望擁有較大的伸縮能力的
應用。

適用平台:……(太多而只不再一一列說)適用應用:Internet/Intranet高可靠性應用、I
nternet/Intranet與Client/Server結合的應用系統

學習方式:Java的Doc文檔和java站點中的一系文檔Internet的源代碼資源(對不起大家,
真的不能提出更好的建議了,再有的就是大家的能力和運氣,以及Inetnet上網友的幫助
了)

推荐開發工具:JBuilder/Visual Age for java(這個我沒用過,但是有人強力推荐)/Sun
Forte for JavaKAWA

推荐開發環境:Windows NT/Windows 2000開發系統JBuilder 3.5(它能成為Web Server,
甚至不再需要其它的工具)Tomcat 3.1JDK 1.3(可以不安裝)Access 2000/P II 266/128M
RAM/9G HD

推荐應用環境(最少):RedHat Linux 6.2/MySQL 3.22/Apache 1.3.12/Tomcat 3.1/JDK 1
.3Beta/PIII 500/512M RAM/9G HD

推荐應用環境(最佳):Solaris 8/Sybase 11/iPlanet Enterprise Web Server 4.1/JDK
1.3Beta/Sun Netra T1/1G RAM/18G HD

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()