PHP 七大優(yōu)勢(shì)分析
我認(rèn)為有七個(gè)理由可以說明PHP比ASP更優(yōu)秀:
1、速度、速度、速度
當(dāng)我第一次運(yùn)行PHP腳本程序時(shí),我不禁對(duì)自己說:“太快了”,當(dāng)時(shí)我是在儀態(tài)166MHZ的機(jī)器上運(yùn)行我的程序的,但運(yùn)行的速度仍然很快。
ASP是永遠(yuǎn)也不會(huì)象PHP這樣快的,因?yàn)锳SP是建立在COM體系結(jié)構(gòu)之上的。當(dāng)用VBScript寫ASP腳本時(shí),實(shí)際上實(shí)在使用COM的對(duì)象,當(dāng)向用戶瀏覽器發(fā)送信息時(shí),它用的是Response對(duì)象的write方法,當(dāng)它訪問數(shù)據(jù)庫(kù)和文件系統(tǒng)的時(shí)候,它用的是其他的COM對(duì)象。這些COM對(duì)象的使用使運(yùn)行速度下降。
在PHP代碼中,所有的工作都運(yùn)行在PHP的內(nèi)存空間中,也就是說PHP不是基于COM對(duì)象的,所以的他的運(yùn)行速度會(huì)快一些。
下面是我們?cè)贛SSQL7 40次運(yùn)行一個(gè)查詢語(yǔ)句的執(zhí)行時(shí)間統(tǒng)計(jì):
PHP Querying MSSQL7 時(shí)間(秒)
用 MSSQL extension 01.88
用 ODBC extension 09.54
用 ODBC via COM (ADO) 17.28
用 OLEDB via COM 06.19
當(dāng)我們使用PHP.ODBC,訪問數(shù)據(jù)庫(kù)用了9.54秒,而用COM接口去連接數(shù)據(jù)庫(kù)需要比PHP所用的時(shí)間高80%。
OLEDB是微軟的一種高速訪問數(shù)據(jù)庫(kù)的技術(shù),他比ODBC要快。但當(dāng)我們所PHP和OLEDB的效率實(shí)驗(yàn)時(shí),結(jié)果是PHP的整體性能比OLEDB高200%,如此的出一個(gè)結(jié)論,如果不采用COM可以獲得較快的執(zhí)行速度。
當(dāng)然PHP的執(zhí)行速度還不是最快的,但我們才剛剛開始起步,我們會(huì)逐步的完善他,而且PHP是一種開放源代碼編程語(yǔ)言,世界上許多程序員在不斷的完善他的技術(shù),相信他一定會(huì)比非開放源代碼系統(tǒng)獲得更高的執(zhí)行速度的。
2、高級(jí)內(nèi)存管理
在IIS4下,一個(gè)ASP腳本header.asp,如果被20個(gè)頁(yè)面所包含,那么運(yùn)行的時(shí)候,在內(nèi)存當(dāng)中會(huì)保留這20個(gè)header.asp的編譯副本,IIS5解決了這個(gè)問題,但只有windows2000才支持IIS5,由于這種IIS5的不能向下兼容的原因,許多服務(wù)器仍然要使用IIS4下的低級(jí)的內(nèi)存管理。
而在PHP中,不會(huì)存在這種問題,只有當(dāng)require時(shí),才會(huì)調(diào)用某個(gè)include文件。
3、沒有后顧之憂
我非常憎恨的一件事情就是會(huì)買到一件不放心的產(chǎn)品,比如當(dāng)你買了一輛汽車,但由于發(fā)動(dòng)機(jī)是壞的,你需要更換他;當(dāng)你買了一棟房子的時(shí)候,你要去修補(bǔ)漏雨的屋頂。
那么ASP舊鄉(xiāng)這些產(chǎn)品一樣,當(dāng)你買了ASP之后,如果你需要加密技術(shù),你就要買ASPEncrypt;當(dāng)你需要Email管理時(shí),你就要買ServerObjets Qmail;當(dāng)你需要文件上傳時(shí),你還要買Artisans SA-FileUp.
4、MySQL使PHP更精彩
PHP與MySQL的組合既簡(jiǎn)單又精彩。PHP有許多管理和維護(hù)MySQL的工具,對(duì)MySQk的支持是最全面的。許多有用的函數(shù)如mysql_insert_id和mysql_affected_rows等,其他的數(shù)據(jù)庫(kù)則沒有。
ASP和PHP都是中型網(wǎng)站的較理想的解決方案,但PHP與MySQL的緊密結(jié)合使PHP更加優(yōu)越。
MySQL的虛度比Microsoft Access速度快,Mssql和Oracle速度比MySQL要快,可是費(fèi)用較高。
5、Java和C++的變成風(fēng)格
這個(gè)優(yōu)點(diǎn)只是一個(gè)看法。
我知道你不會(huì)相信一個(gè)Visual Basic程序員會(huì)因?yàn)镻HP有Java和C++的編程風(fēng)格而轉(zhuǎn)向使用PHP,但你會(huì)相信有許多人還是喜歡Java和C++的,PHP是一種具有這兩種語(yǔ)言的編程風(fēng)格的較容易學(xué)習(xí)的語(yǔ)言。
PHP支持結(jié)構(gòu)化編程,在VB因?yàn)樗睦^承性使用類還是較少的。而PHP的象Java和C++一樣的繼承性使一個(gè)大型的程序中到處都充滿了類的影子。
6、Bug的處理
你是否曾經(jīng)要求Microsoft修改ASP的一些Bug呢?如果你不是一個(gè)象Boeing一樣的組織,你無法獲得迅速而恰當(dāng)?shù)男薷?,把么?dāng)你遇到Bug而停止工作時(shí),如果這個(gè)Bug不修改,你將無法繼續(xù)你的工作的。
PHP,當(dāng)你發(fā)現(xiàn)Bug時(shí),你可以修改他,如果你沒有專家的水平,你可以請(qǐng)專家修改,并且你的修改會(huì)得到開放代碼組織的接受和認(rèn)可。
7、移植性
Microsoft經(jīng)常修改ASP,下一版本叫ASP+,現(xiàn)在已經(jīng)開始測(cè)試。我相信他們會(huì)修改許多我曾經(jīng)提到過的問題。但也無庸質(zhì)疑的,Microsoft會(huì)將你限制在他們的產(chǎn)品范圍之內(nèi)的。
我曾經(jīng)是一個(gè)蘋果機(jī)的程序員,當(dāng)windows95問世后,我開始轉(zhuǎn)變,但許多原來的代碼都無法在windows95下運(yùn)行,這些代碼現(xiàn)在被放在一邊,我非常的遺憾。所以我不希望在windows下再出現(xiàn)這樣的悲劇。
不要忘記Novell曾經(jīng)也象Microsoft的網(wǎng)絡(luò)操作系統(tǒng)一樣熱及一時(shí),但現(xiàn)在已經(jīng)沒有許多人用了,那么Microsoft也會(huì)這樣的。
我找到了PHP,我仍舊在windows下工作,但我知道PHP代碼可以運(yùn)行在Solaris、Linux和許多其他的操作系統(tǒng)中,我的心里感到安慰
相關(guān)文章
六個(gè)步驟,從零開始教你搭建基于WordPress的個(gè)人博客
這篇文章主要介紹了六個(gè)步驟,從零開始教你搭建基于WordPress的個(gè)人博客,步驟講解的很清楚,不知道如何搭建wordpress的同學(xué)可以跟著搭建下2021-01-01PHP 獲取文件路徑(靈活應(yīng)用__FILE__)
__FILE__ ,是返回文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個(gè)絕對(duì)路徑,而在此之前的版本有時(shí)會(huì)包含一個(gè)相對(duì)路徑2013-02-02phpstorm最新激活碼分享親測(cè)phpstorm2021.3版可用
這篇文章主要分享了phpstorm最新激活碼親測(cè)phpstorm2021.3.1版可用,如果你的提示過期可以使用phpstorm永久激活補(bǔ)丁+激活碼需要的朋友可以參考下2020-11-11php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法
這篇文章主要介紹了php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法,涉及針對(duì)配置文件的修改,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列示例
這篇文章主要介紹了PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列,結(jié)合實(shí)例形式分析了PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列相關(guān)客戶端與服務(wù)器端操作技巧,需要的朋友可以參考下2019-04-04php數(shù)組一對(duì)一替換實(shí)現(xiàn)代碼
以下方法能實(shí)現(xiàn)匹配關(guān)鍵詞并分別對(duì)關(guān)鍵詞做特殊處理的功能,需要的朋友可以參考下2012-08-08thinkphp使用phpmailer發(fā)送郵件的方法
這篇文章主要介紹了thinkphp使用phpmailer發(fā)送郵件的方法,包含了配置發(fā)送郵件類、設(shè)置參數(shù)及發(fā)送郵件測(cè)試等的具體步驟,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11