
來(lái)源:派臣科技|時(shí)間:2015-02-03|瀏覽:次
1、速度上的優(yōu)點(diǎn)
當(dāng)我第一次運(yùn)行PHP腳本程序時(shí),我不禁對(duì)自己說(shuō):“太快了”,當(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寫(xiě)ASP腳本時(shí),實(shí)際上實(shí)在啟用COM的對(duì)象,當(dāng)向客戶(hù)瀏覽器發(fā)送信息時(shí),它用的是Response對(duì)象的write手法,當(dāng)它訪問(wèn)數(shù)據(jù)庫(kù)和文件系統(tǒng)的時(shí)候,它用的是其他的COM對(duì)象。這些COM對(duì)象的啟用使運(yùn)行速度下降。 在PHP代碼中,所有的工作都運(yùn)行在PHP的內(nèi)存空間中,也就是說(shuō)PHP不是基于COM對(duì)象的,所以的他的運(yùn)行速度會(huì)快一些。
下面是我們?cè)贛SSQL740次運(yùn)行一個(gè)查詢(xún)語(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,訪問(wèn)數(shù)據(jù)庫(kù)用了9.54秒,而用COM接口去連接數(shù)據(jù)庫(kù)需要比PHP所用的時(shí)間高80%。
OLEDB是微軟的一種高速訪問(wèn)數(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是一種開(kāi)放源代碼編程語(yǔ)言,世界上眾多程序員在不斷的完善他的技術(shù),相信他一定會(huì)比非開(kāi)放源代碼系統(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è)問(wèn)題,但只有windows2000才支持IIS5,由于這種IIS5的不能向下兼容的因素,眾多服務(wù)器仍然要啟用IIS4下的低級(jí)的內(nèi)存管理。
而在PHP中,不會(huì)存在這種問(wèn)題,只有當(dāng)require時(shí),才會(huì)引用某個(gè)include文件。
3、沒(méi)有后顧之憂(yōu)
我非常憎恨的一件事情就是會(huì)買(mǎi)到一件不放心的產(chǎn)品,比如當(dāng)你買(mǎi)了一輛汽車(chē),但由于發(fā)動(dòng)機(jī)是壞的,你需要變換他;當(dāng)你買(mǎi)了一棟房子的時(shí)候,你要去修補(bǔ)漏雨的屋頂。
那么ASP舊鄉(xiāng)這些產(chǎn)品一樣,當(dāng)你買(mǎi)了ASP之后,如果你需要加密技術(shù),你就要買(mǎi)ASPEncrypt;當(dāng)你需要Email管理時(shí),你就要買(mǎi)ServerObjets Qmail;當(dāng)你需要文件上傳時(shí),你還要買(mǎi)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ù)則沒(méi)有。
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)勢(shì)只是一個(gè)看法。
我知道你不會(huì)相信一個(gè)Visual Basic程序員會(huì)因?yàn)镻HP有Java和C++的編程風(fēng)格而轉(zhuǎn)向啟用PHP,但你會(huì)相信有眾多人還是喜愛(ài)Java和C++的,PHP是一種具備這兩種語(yǔ)言的編程風(fēng)格的較容易學(xué)習(xí)的語(yǔ)言。
PHP支持結(jié)構(gòu)化編程,在VB因?yàn)樗睦^承性啟用類(lèi)還是較少的。而PHP的象Java和C++一樣的繼承性使一個(gè)大型的程序中到處都充滿(mǎn)了類(lèi)的影子。
6、Bug的處理。
你是否曾經(jīng)要求Microsoft修改ASP的一些Bug呢?如果你不是一個(gè)象Boeing一樣的組織,你無(wú)法獲取迅速而恰當(dāng)?shù)男薷?,把么?dāng)你遭遇Bug而停止工作時(shí),如果這個(gè)Bug不修改,你將無(wú)法繼續(xù)你的工作的。
PHP,當(dāng)你發(fā)現(xiàn)Bug時(shí),你能夠修改他,如果你沒(méi)有專(zhuān)家的水平,你能夠請(qǐng)專(zhuān)家修改,并且你的修改會(huì)得到開(kāi)放代碼組織的接受和認(rèn)同。
其實(shí)任何語(yǔ)言本身都沒(méi)有安全問(wèn)題,而出現(xiàn)問(wèn)題的根源緊要在安全意識(shí)與配置環(huán)境。要比的話(huà),就比比兩個(gè)語(yǔ)言的緊要配置環(huán)境(Windows + IIS VS UNIX Or Linux + Apache)誰(shuí)更安全和程序設(shè)計(jì)者的安全意識(shí)與防范手段。ASP與PHP的共同優(yōu)勢(shì)就是易學(xué)易用易維護(hù),但相較之,PHP在跨平臺(tái)方面具備明顯的優(yōu)點(diǎn),再者PHP為客戶(hù)開(kāi)發(fā)了大量的函數(shù)、過(guò)程、類(lèi)、模板等等,所以這也是一個(gè)對(duì)照突出的優(yōu)點(diǎn)。
