top
Loading...
談談cgi得速度問題
關于php cgi 和asp的速度比較一直是一個爭議的問題

本人初入門是從perl開始的,后來學習了asp和php
因為編程語言的簡單,一段時間曾經迷上php。
后來用多了,便發覺這些語言各有優缺點。
我個人編程使用語言主要視乎程序的類型
(其中由于對php和perl較為熟悉,因此采用較多)

下面是我對asp,php,和perl使用的心得。

1.調試速度的比較:
其實,一般的cgi程序,這3種語言的速度比較是不明顯的,這里面常常會有誤區
,很多人采用不同的程序進行比較,但是由于這些程序結構和篇寫人員的水平不一樣。
往往程序速度的區別是由程序結構本身而非語言區別產生的。
我曾經在本地些個一個留言本,分別用3種語言比較(文本格式),結果發現本地執行的速度沒有什么區別(win98上)
但是,如果寫一個不斷刷新的聊天室,在win98+iis上,明顯asp快點(因為asp與iis)是集成的,而且是線程,而cgi和php
都屬于外部調用的cgi,顯然,繁忙的多人的http請求時,asp占優(iis服務器)。
另外測試文本格式的論壇程序,發現三種程序的處理速度區別不大,而當使用數據庫的貼子數量很多的論壇的時后(同樣在win98上)
使用IIS+cgi+mysql IIS+php+mysql的速度都不比IIS+asp+access慢,而使用apache+cgi+mysql要比iis+cgi+mysql快,可見這里主要的區別
與數據庫類型和web服務器有關系。
而當一些人用一個IIS+ASP+ODBC(數據庫)與IIS+CGI+文本比較一個多貼論壇時,就斷定asp比cgi或php快顯然是不嚴謹的。
另外一點,對于小型程序,不管那種語言一般運行的時間0.5秒左右,而從遠端服務器下載一個網頁就要10多秒左右,顯然這種速度是相差很遠的。

個人總結:在NT上編寫例如聊天室,新聞等網頁刷新率高的程序時,asp比較理想,而象論壇,搜索這類程序
使用asp和cgi和php都可以選擇(asp使用方便,而php.CGI可以獲得較高穩定性)

個人心得:在NT上使用apache+mysql+php的效果要比iis+mysql+php好的多。

個人經驗:提高效率的根本方法不是語言的選擇,而是于平臺的搭建,程序語言的結構和網頁html代碼的優化。
一個被大家忽視的問題是臃腫的html代碼比程序更影響速度!!!!
舉個例子,就拿這個論壇,大家有沒有發現,發別貼子的速度很快而文章列表的速度較慢,大家可能以為是搜索數據庫慢的原因,其實不然,當大家看到廣告條出現的時候,
程序已經執行完成,而剩下的時間都是下載html網頁的時間(因為有大量的表格,因此影響瀏覽速度,瀏覽器在/table出現后才出表格)。

2.語言的性能:

如果說程序的編程應用能力,顯然php和asp與perl不在一個檔次,perl的數組功能,字符處理功能,能領眾多難題輕松解決,尤其perl的應用模塊更是舉不性數,為編程帶來方便(不過,很多人沒有使用這些模塊的條件)。
perl在某些字符處理能力方面比語言老大C/C++還出色,這也是perl在互聯網應用廣的原因。
對于php其實就象一個集成塊語言,不很多元件集成一起,因此,雖然它的模塊很小,但很多web功能集成在語言里,因此很多功能用很小的語句就能實現,因為語言簡練,特別析合初學者使用,當是一些高級性能,和系統結合的性能不及perl,比asp也遜色。
但是使用他編寫程序,一定能節省你很多時間。
對于asp,因為其商業原因,制約了很多性能,很多組件都要收費,源代碼保密,顯然沒有上述語言的大度,同時局限面僅僅是windows。

個人心得:要想提高你的web編程思維和總體水平一定要學習perl.
初學者php是不錯的選擇。

3.資源性能。

本人作了cgi和php的比較,cgi采用進程,php采用模塊
cgi程序瞬間執行的CUP比php大,但執行完成以后馬上退出CUP和內存(時間一般為0.0X秒)
而php則要占用好長一段時間(大概數分鐘),另外cgi占用的內存比PHP小。
因此對于瀏覽量不選很大的程序(10萬次/日)以下的程序用進程CGI比PHP更能節省服務器資源
而頻繁執行的程序(10萬次/日)以上會節省cup資源,如果把CGI編譯到apache模塊時,CGI比php能節省更多的內存
(注意:以上在兩種語言都使用數據庫程序的前提下的比較)。
而在linux上使用cgi+dbi連接mysql,與php連接mysql的時間區別不是很大。

關于unix與NT性能的比較就不用說多說了(一個是高端產品,一個是普及產品),不在一個檔次,
但是如果從普及面和入門來說,NT要占優

本人結論,程序是否占資源,最主要的原因與程序結構有關系,
對于信息量大的程序,能夠用數據庫寫時盡量用數據庫。
當有數據檢索時,用數據庫優于dbm,用dbm優于文本。
而沒有多條數據檢索時正好相反,打開文本文件的速度要比連接數據庫塊。
北斗有巢氏 有巢氏北斗