lamp技術(shù)缺點(diǎn) 交流白熾燈有沒(méi)有藍(lán)光?
交流白熾燈有沒(méi)有藍(lán)光?沒(méi)有。白熾燈通電后能發(fā)出淺紅的光線。白熾燈(incandescentlamp)是將燈絲通電加熱到白熾狀態(tài),依靠熱輻射嘶嘶可見(jiàn)光的電光源。于1879年由美國(guó)發(fā)明家托馬斯·阿爾瓦·愛(ài)
交流白熾燈有沒(méi)有藍(lán)光?
沒(méi)有。
白熾燈通電后能發(fā)出淺紅的光線。
白熾燈(incandescentlamp)是將燈絲通電加熱到白熾狀態(tài),依靠熱輻射嘶嘶可見(jiàn)光的電光源。于1879年由美國(guó)發(fā)明家托馬斯·阿爾瓦·愛(ài)迪生發(fā)明。做成碳化纖維(即碳絲)白熾燈以來(lái),經(jīng)人們對(duì)燈絲材料、燈絲結(jié)構(gòu)、充填氣體的不斷改進(jìn),白熾燈的自行發(fā)光效率也你所選增加。
為什么php不適合做計(jì)算密集型業(yè)務(wù)?
PHP即“超文本預(yù)處理器”,是一種通用開(kāi)源代碼腳本語(yǔ)言。PHP是在服務(wù)器端負(fù)責(zé)執(zhí)行的腳本語(yǔ)言,與C語(yǔ)言相似,是具體方法的網(wǎng)站編程語(yǔ)言。PHP獨(dú)特的地方的語(yǔ)法調(diào)和了C、Java、Perl和PHP獨(dú)創(chuàng)的語(yǔ)法。十分有利自學(xué),可以使用廣泛的,比較多適用規(guī)定于Web開(kāi)發(fā)領(lǐng)域。
1.優(yōu)點(diǎn):開(kāi)放源代碼付費(fèi)性快捷性[程序開(kāi)發(fā)快,運(yùn)行快,技術(shù)本身學(xué)快]
1)跨平臺(tái),性能優(yōu)越,跟Linux/Unix生克制化別跟Windows結(jié)合性能強(qiáng)45%,另外和很多在線的平臺(tái)結(jié)合的很想省錢(qián),例如LAMP(Linux /Apache/Mysql/PHP)也可以FAMP(FreeBSD/Apache/Mysql/PHP)特點(diǎn),或者數(shù)據(jù)應(yīng)用夠大是可以確定換PostgreSQL或者Oracle,支持N種數(shù)據(jù)庫(kù)。(N10)
2)語(yǔ)法簡(jiǎn)單點(diǎn),假如有學(xué)C和Perl的很容易上手,并且跟ASP有部分的的。有完全成熟的開(kāi)發(fā)工具,諸如NuPHPed,或是ZendStudio等等,再Linu臺(tái)下這個(gè)可以在用Eclipse等等。
3)目前主流技術(shù)都允許,例如WebService、Ajax、XML等等,起碼應(yīng)用。
4)有比較求全部的支持,例如建議使用ADODB的或PEAR::DB做數(shù)據(jù)庫(kù)抽像層,用Smarty或者mobilitytemplate做模板層,如果不是是PHP5.1的話,還也能使用PDO(PHP Data Object)來(lái)訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。
5)有很多晚熟的框架,諸如允許MVC的框架:phpMVC,意見(jiàn)類(lèi)似的事件驅(qū)動(dòng)的框架:Prado,支持什么相似RubyOnRails的快速開(kāi)發(fā)的框架:Cake等等,足夠滿足你的應(yīng)用需求。
6)PHP5早有成熟的面向?qū)ο篌w系,還能夠適應(yīng)基本都的面向?qū)ο笠?。更適合變更土地性質(zhì)規(guī)模很大項(xiàng)目。
7)有成熟的社區(qū)來(lái)意見(jiàn)PHP的開(kāi)發(fā)。
8)目前早很多規(guī)模很大應(yīng)用大都在用PHP,.例如淘寶網(wǎng)、Yahoo、163、Sina等等規(guī)模大門(mén)戶,很多建議選用PHP來(lái)以及他們的開(kāi)發(fā)語(yǔ)言,所以才小型門(mén)戶都都能夠建議選用它,我想足夠能夠你的使用了。
9)有很多開(kāi)源的框架或開(kāi)源的系統(tǒng)可以在用,比如說(shuō)也很老牌的開(kāi)源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開(kāi)源論壇有Discuz!、Phpwind等,開(kāi)源博客WordPress,開(kāi)源軟件網(wǎng)店系統(tǒng)如Ecshop、ShopEx等,開(kāi)源的SNS系統(tǒng)如UCHome、ThinkSNS等。
10)使用成本低(linuxapachemysqlphp內(nèi)核)
2.缺點(diǎn)
1)函數(shù)以此命名不相關(guān)規(guī)范駝峰法和下滑線,傳參位置不一你很清楚的
2)單線程;PHP本身,一直以來(lái)php就是個(gè)單進(jìn)程的程序;雖然php的pthreads擴(kuò)展已經(jīng)有了。但是它不夠穩(wěn)定,運(yùn)行運(yùn)行著是會(huì)莫明奇妙的自己死干凈;php的擴(kuò)展大都C寫(xiě)的,這任何三個(gè)擴(kuò)展會(huì)出現(xiàn)線程競(jìng)爭(zhēng)資源控制問(wèn)題都能讓整個(gè)死干凈
3)核心異步模式網(wǎng)絡(luò)不支持什么(當(dāng)然在linux只有一同步非堵塞網(wǎng)絡(luò)模型)。卻少了這個(gè)以至于很容易旗下一個(gè)也能能夠承受大并發(fā)的網(wǎng)絡(luò)應(yīng)用。民間的網(wǎng)絡(luò)模型和io都阻塞住的。這樣都差不多的編程的做法那就是一個(gè)進(jìn)程(或是線程)響應(yīng)一個(gè)用戶鏈接請(qǐng)求。所以沒(méi)能能完成像動(dòng)態(tài)實(shí)時(shí)網(wǎng)游現(xiàn)在這樣不需要數(shù)以萬(wàn)計(jì)網(wǎng)絡(luò)連接的任務(wù)。但他php也有Libevent、eio擴(kuò)大因此算得某種程度上面的彌補(bǔ),只不過(guò)那種感覺(jué)都不是那就完善
4)只接受web開(kāi)發(fā),不太方便做.exe文件,實(shí)在不方便做桌面應(yīng)用程序.不大方便做手機(jī)程序.
5)不適合我做爬蟲(chóng)、不自動(dòng)運(yùn)行腳本.科算項(xiàng)目,這語(yǔ)言都差不多構(gòu)架就不適合,雖然有很多方法實(shí)現(xiàn)方法。
6)后期維護(hù)困難。后期提速空間局限性減小。
在對(duì)PHP有一個(gè)大致的認(rèn)識(shí)以后,我們來(lái)了解看看為么說(shuō)PHP慢?
PHP的慢是相對(duì)于C/C級(jí)別的語(yǔ)言來(lái)說(shuō),事實(shí)上,PHP語(yǔ)言在此之前的設(shè)計(jì),就又不是用處可以解決計(jì)算密集型的應(yīng)用場(chǎng)景。我們可以這樣的話查閱解釋為,PHP為了提升開(kāi)發(fā)效率,而犧性了執(zhí)行效率。
我們明白PHP一個(gè)太大的特點(diǎn),那是弱類(lèi)型特性,也就是說(shuō),我是可以隨意地定義,定義一個(gè)變量,接著給它隨意地賦值為各種類(lèi)型的數(shù)據(jù)。以一個(gè)int整型數(shù)字為例子,在C語(yǔ)言中:
intnum200;//大多是4字節(jié)
不過(guò),要是是PHP定義了一個(gè)同時(shí)的變量,實(shí)際中隨機(jī)的存儲(chǔ)結(jié)構(gòu)則是:
這個(gè)結(jié)構(gòu)體將會(huì)占下遠(yuǎn)比C變量多得多的內(nèi)存,PHP中定義法萬(wàn)分感謝:
$a200;//這變量將實(shí)際占用帶寬對(duì)比C變量很多倍的存儲(chǔ)空間。
不過(guò)對(duì)PHP來(lái)說(shuō),不管讀取什么類(lèi)型的數(shù)據(jù),全是用上述事項(xiàng)“通殺”的結(jié)構(gòu)體利用。就是為了兼容PHP程序員的變量類(lèi)型“亂入”,PHP能做到了對(duì)開(kāi)發(fā)者的表示友好,可是對(duì)執(zhí)行引擎很殘酷。單個(gè)變量?jī)?nèi)存消耗肯定還不明顯,那樣一來(lái)要用PHP的數(shù)組等,則急切度指數(shù)向上升(數(shù)組的實(shí)現(xiàn)是HashTable)。然后再,Zend引擎想執(zhí)行時(shí),將這些PHP代碼編譯為opcode(PHP的中間字節(jié)碼,格式好像有點(diǎn)像匯編),由Zend引擎逐行請(qǐng)解釋執(zhí)行。
無(wú)論是字符串的連接操作,肯定數(shù)組的簡(jiǎn)單點(diǎn)如何修改等,甚至大都“PHP程序員一句話,Zend引擎跑斷腿”的節(jié)奏。而,則是的操作,差不多C來(lái)說(shuō),PHP會(huì)消耗了更多的CPU和內(nèi)存等系統(tǒng)資源。除了,還有一個(gè)內(nèi)存自動(dòng)出現(xiàn)回收、變量類(lèi)型判斷等等,都會(huì)增加系統(tǒng)資源的消耗。
比如,我用純PHP實(shí)現(xiàn)程序的快速排序函數(shù)和原生sort函數(shù),排序10000個(gè)整型數(shù)字,來(lái)做一個(gè)工程巨大對(duì)比,最后不勝感激:
原生的sort工程浩大3.44ms,而我們自己利用的PHP函數(shù)sort則是68.79ms。我們發(fā)現(xiàn),兩者想執(zhí)行效率差距龐大無(wú)比。我的測(cè)試,是計(jì)算函數(shù)執(zhí)行前后的時(shí)間間隔,而不是整個(gè)PHP腳本從啟動(dòng)到結(jié)束了的時(shí)間。PHP腳本啟動(dòng)后和關(guān)閉過(guò)程,本身有著一系列的初始化和清理工作,也會(huì)占有不少的耗時(shí)。
通常情況下,PHP不能執(zhí)行效率的排行是:
快的話的是PHP語(yǔ)言結(jié)構(gòu)(isset、echo等),PHP語(yǔ)言的一部分(它們根本不不是函數(shù))。
接著也很快的那就是PHP的原生和去拓展函數(shù)。PHP拓展,基于組件ZendAPI之上,用C利用的功能,想執(zhí)行效率和C/Java是一類(lèi)同一個(gè)數(shù)量級(jí)的。
完全慢的是,我們實(shí)際PHP自己寫(xiě)的代碼和函數(shù)。例如,如果我們不使用的比較比較重的純PHP實(shí)現(xiàn)的框架,而且框架本身的模塊很多,所以,會(huì)肯定脫累語(yǔ)言層面的執(zhí)行效率,而占有更多的內(nèi)存。(國(guó)內(nèi)的Yaf框架,以去拓展的實(shí)現(xiàn),因此先執(zhí)行效率遠(yuǎn)快于純PHP寫(xiě)的框架。
在一般情況下,我們的確推薦用過(guò)PHP基于邏輯緊張計(jì)算類(lèi)型的功能,尤其是Web系統(tǒng)流量比較好大的場(chǎng)景下。但,PHP程序員應(yīng)該對(duì)PHP的各種原生函數(shù)和類(lèi)別繁多拓展資源有一個(gè)比較好越來(lái)越廣泛的了解,在具體一點(diǎn)的功能利用場(chǎng)景中,跪求更原生的解決方案(原生接口或則學(xué)習(xí)拓展),而不是自己寫(xiě)一堆緊張的PHP代碼來(lái)實(shí)現(xiàn)這類(lèi)型功能。
要是有充足的PHP去拓展的新實(shí)力,將這類(lèi)型業(yè)務(wù)功能格式化處理為一個(gè)PHP拓展,也會(huì)強(qiáng)力反彈提升到代碼的執(zhí)行效率。這是一個(gè)非常不錯(cuò)的,也被廣泛應(yīng)用PHP系統(tǒng)優(yōu)化中。不過(guò),自己編寫(xiě)的PHP業(yè)務(wù)拓展的缺點(diǎn)也很確實(shí):
學(xué)習(xí)拓展變更土地性質(zhì)需要的時(shí)間比較長(zhǎng),需求變更的時(shí)候直接修改也古怪,寫(xiě)得不大好可能會(huì)引響Web服務(wù)穩(wěn)定性。(或者,在Apache的worker模式下,多線程場(chǎng)景下打死,會(huì)影響同一個(gè)進(jìn)程下的其他正常子線程。如果沒(méi)有是多線程的Web模式,c語(yǔ)言程序拓展還不需要意見(jiàn)線程安全)
拓寬思維在PHP跨版本的時(shí)候,可能要做額外的兼容工作。
后的魔獸維護(hù)和接手后成本也比較高。
實(shí)際上,在互聯(lián)網(wǎng)一線企業(yè)中,更最常見(jiàn)的一種的解決方案,不是增強(qiáng)PHP拓展資源,而用C/C獨(dú)立寫(xiě)一個(gè)服務(wù)server,接著PHP和服務(wù)server通信來(lái)成功業(yè)務(wù)處理,的確將PHP本身和業(yè)務(wù)耦合在一起。
不過(guò),Web服務(wù)大部分的性能瓶頸都在網(wǎng)絡(luò)傳輸和其他服務(wù)server的前后歷時(shí)上(比如MySQL等),PHP先執(zhí)行的工程巨大在整體需要的時(shí)間的電腦資源比例更加小,所以從業(yè)務(wù)角度來(lái)說(shuō),影響可能會(huì)并不肯定。