日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP開發大型Web應用淺析

瀏覽:89日期:2024-01-13 13:13:31

關于PHP的執行效率,網上的專題文章很多,多是PHP、Java幾個陣營的爭論;應用的方面不同,執行環境不同,效率的差別會差得比較大。這里所說的“ 大型”應用不是說像Google、eBay、Yahoo這類大型網站的具體實施,只是希望大家的系統可以運行得更快更流暢,可以承載更多的用戶在線,希望可以給PHP的初學者一點幫助。

這里所說的“大型”應用不是說像Google、eBay、Yahoo這類大型網站的具體實施,我也沒有意圖勸說讀者放棄自己的概念和信仰,只是希望大家的系統可以運行得更快更流暢,可以承載更多的用戶在線,希望可以給PHP的初學者一點幫助。

關于PHP的執行效率,網上的專題文章很多,多以PHP、Java幾個陣營的爭論開始,以一個不確定的期待結束,很少看見一個明確的結論。確實,程序的執行效率是很難從比較中得出的。應用的方面不同,執行環境不同,效率的差別會差得比較大。而且效率也是需要權衡的,大家都知道匯編語言很底層,可以寫出非常高效的程序,但是我還很少,應該說是幾乎沒看過有人用匯編做Web開發,而且有能力用匯編寫出高效程序的人似乎都是值得大家仰視的,哈哈~我們沒有必要去討論PHP和匯編到底差多少,只要知道自己的PHP和別人的PHP差多少就可以了。

首先,先要明確這篇文章的前提:必須有一臺或更多的可以被自己操縱的服務器,而不是虛擬主機空間。畢竟可以在虛擬主機上運行的通用系統已經有了很多經典的作品和成熟的框架,效率挖掘已經被前輩們做得非常出色了,它們的很多理念也被現在很多PHP用戶繼承和發展,越來越多的所謂“框架”也像滿天繁星一樣,我也不想再去寫那個,因為第一我自己的水平也不怎么樣,寫不出什么新鮮玩意來,寫出來也招人笑,第二是寫這個的文章太多了,說法也太多了,混亂是造成很多富有激情的未來天才程序員夭折的最大元兇。

在獨立服務器上執行的程序和在虛擬主機上可以運行的程序在效率優化方面有著很大差別。您當然可以把一套discuz不加修改地安裝在一臺甚至一堆獨立服務器上,不過,它真的得到最大的性能優化嗎,您真的對得起這一堆服務器嗎?

獨立服務器指的是,使用者對這臺機器有完全的控制權,包括安裝、刪除軟件,配置系統參數甚至修改源代碼?;谶@樣一個開放的硬件平臺,性能也不僅僅是體現在速度上,還包括安全性、穩定性等。和虛擬主機不同,用戶必須自己配置Web服務器參數,安裝和配置PHP、數據庫,以及安裝各種亂七八糟的東西(我喜歡這么說),當然還要對它們負責。

首先提出幾個名詞:執行時間、模板、數據庫封裝、Cache、Buffer、Hash、守護進程、crontab。

執行時間,誰都知道,就是一個程序從執行開始到執行結束所用的時間。因為Web是瞬時的、無狀態的,所以執行時間是Web程序執行效率的一個指標,它并不適合衡量C/S程序或者后臺守護的程序,因為它們很多都是持續運行的。頁面執行時間的一個典型例子就是Discuz論壇頁面最下方的時間顯式,通常 Discuz都是幾毫秒到幾十毫秒,和所用的平臺、數據量和當前系統壓力有關。

模板大家再熟悉不過,雖然有很多人只是在用,但是不知道為什么在用。模板在傳統上來說是劃分邏輯層的一種途徑,在MVC上結構里,它把表示層和下層分離,在實際使用中,它方便程序員和界面設計人員分工合作。然而,現在很多場合中,由于模板的不當使用,它非但沒有起到促進程序員和界面設計人員分工合作,反倒成為程序員和美工互相仇視的罪魁(我好像在以前的帖子里這樣說過),很多人在抱怨他們不得不花很多時間在整理模板上。

數據庫封裝似乎和Java的關系更大,它對多種數據庫系統提供一個統一調用接口,通常是一些封裝好的類,這些類有時也完成一些比如SQL檢查、過濾等工作。PHPLIB里的DB封裝、PEAR DB、Adodb等都很有名,用的人也很多。

Cache和Buffer看起來好像是一種東西,Cache叫做緩存而Buffer叫做緩沖。在硬件概念中,Cache的用途是連接兩種速度不同的設備,比如寄存器和內存、CPU和PCI-Bus、IDE總線和硬盤。Buffer的原意是類似彈簧的一種緩沖器,用來減輕或吸收沖擊的震動的東西。 Buffer是一種數據預存取的方式,它用于臨時存儲數據并以與接收速度不同的速度傳輸。Buffer的更新方式可以是按時間間隔自動刷新,而Cache 則更講究“命中率”,將當前時間段使用頻繁的少量數據放到高速設備中方便讀寫。在程序開發中,固然沒有什么高速、低速設備,不過數據源是可以有不同讀寫效率的。對于少量數據,文本文件的讀寫通常就要比數據庫存取效率好,而同樣是文本文件讀寫,在tmpfs上的效率就要比直接的磁盤IO效率好。Buffer 更多地體現在進程通信和隊列上,很多時候并不是因為接收方沒有能力更快地讀取,而是沒有必要更快地讀取。

守護進程是一種在后臺連續執行的程序,它通常是起到監視、控制流程、對外提供服務等作用。比如Apache本身就可以被理解成一個守護進程,雖然它實際上是由很多個經常更新的進程組成(主進程是固定的)。

Crontab是UNIX/Linux的定時程序,有點像Windows的“計劃任務”,它設定在多少個時間間隔后或者是某一個時間點執行特定的程序。它通常用來完成自動更新、清除臨時數據等一段時間自動執行一次的操作。

另外一個比較特別的概念(說它特別是相對于習慣了通用系統開發的人來說),是當我們擁有了一臺獨立的服務器之后,完全沒必要把自己局限在PHP所能提供的功能范圍內,當我們不知不覺地成為系統的主人后,要努力發現到這一點,我們有很多東西可以用的。PHP不是萬能的(這簡直是一定的),對于它的功能上的不足,完全可以用Perl來彌補,Perl做為一種通用語言,可以提供更多的功能選擇,砂礫一樣密的模塊給這個隨意得有些變態的語言提供了無窮的能量。對于PHP性能上的不足,完全可以用C來補充。PHP的根本就是由C繼承來,PHP本身也是由C開發,用C來做PHP的擴展是完全合理的。

Linux本身就是由C和Perl在支撐(我這樣說完全不是為了夸大Perl的地位,大家可以去看看一個標準的Linux中有多少Perl腳本,離開Perl之后這個系統是不是覺得像個殘疾人)。PHP從C中繼承了大部分的語法,從Perl中學習了大部分Web特性、函數和那個貌似與開源很矛盾的 “$”符號(PHP早期就是一個Perl腳本)。

下面來分析我在使用的一些代碼(注:Linux獨立服務器適用。我好像已經放棄對Windows和虛擬主機做大型開發很長時間了)。里面使用了一些也許很熟悉也許很陌生也許很變態的方法。我的系統是RedHat AS3,沒有什么特別的,PHP版本是4.4.0,MySQL是4.1。我從來沒有刻意地去寫一些必須用到PHP5的新特性的代碼,除非真的必須用到。

我的Web根目錄在/www下,Apache、PHP都是默認安裝在/usr/local/下,MySQL是下載的編譯好的二進制版本,我也一樣把它丟在那里。因為只是用于測試,我不想它看起來很亂,至于在實際項目中,尤其是多臺服務器的情況下,需要好好地部署一下你的系統。

為了使系統的結構清晰一些,我把需要使用的文件都放在了二級目錄下面。

下面是通用頭文件/includes/kernel/common.inc.php的一些片斷:

﹤?phpif (!defined('IN_BSG')) {exit;}?﹥

上面的代碼保證它只能被合法的程序所調用,而不會被其它的文件include。如果正在執行的程序沒有定義一個'IN_BSG'常量,它在include這個common.inc.php之后程序會終止。

﹤?phplist($usec, $sec) = explode(' ', microtime());$page_time_start = $usec + $sec;?﹥

這兩行大家可能都會比較熟悉,這是計算程序的開始執行時間的。在程序結束之前,還會再計算一下這個,為的是得出程序執行所耗費的時間。如果你不在意這些,可以放心地把它注釋掉。

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲va久久| jizzjizz中国精品麻豆| 99精品综合| 国产成人精品一区二区三区在线| 69精品国产久热在线观看| 日本不卡中文字幕| 青青草91视频| 日韩精品一级中文字幕精品视频免费观看| 色偷偷色偷偷色偷偷在线视频| 国产传媒在线观看| 91综合网人人| yellow在线观看网址| 高清av一区| 国产精品久久久久久久久妇女| 麻豆精品av| 高清av一区| 色婷婷精品视频| 欧洲激情综合| 久久亚洲一区| 综合激情网站| 亚洲va久久久噜噜噜久久| 日韩黄色免费网站| 日韩中文av| 在线免费观看亚洲| 日韩av网站免费在线| 国产欧美日韩免费观看| 国产精品v一区二区三区| 国产一区二区三区不卡视频网站| 日韩欧美一区二区三区在线视频| 久久激情网站| 人人爽香蕉精品| 日本中文字幕一区二区视频| 国产精品va视频| 欧美aa一级| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲人成亚洲精品| 欧美黄页在线免费观看| 国产福利一区二区精品秒拍| 精品不卡一区| 不卡视频在线| 中文字幕一区二区三区日韩精品| 日本特黄久久久高潮| 麻豆精品在线观看| 久久国产影院| 免费视频一区二区| 国产欧美69| 亚洲成人不卡| 亚洲一区欧美| 精品免费av一区二区三区| 久久精品中文| 亚洲91在线| 水蜜桃精品av一区二区| 女同性一区二区三区人了人一| 99成人在线| 国产高清精品二区| 一区免费在线| 国产亚洲字幕| 欧美亚洲精品在线| 日韩国产91| 特黄毛片在线观看| 亚洲精品国产精品粉嫩| 欧美aⅴ一区二区三区视频| 婷婷成人在线| 欧美伊人影院| 美女网站一区| 免费在线观看一区| 欧美精品九九| 麻豆国产精品视频| 99精品综合| 久久精品72免费观看| 日本欧美不卡| 国产亚洲一区| 性欧美69xoxoxoxo| 国产日韩欧美高清免费| 黄色不卡一区| 免费观看亚洲天堂| 鲁大师影院一区二区三区| 久久免费精品| 奶水喷射视频一区| 毛片在线网站| 国产日产一区| 欧美特黄一区| 老司机精品视频在线播放| 国精品一区二区| 国产三级精品三级在线观看国产| 亚洲网站视频| 国产一区国产二区国产三区| 亚洲精品看片| 欧美特黄a级高清免费大片a级| 国产96在线亚洲| 国产日韩一区二区三区在线 | 久久久久国产一区二区| 国产精品一卡| 蜜芽一区二区三区| av资源亚洲| 国产精品伊人| 日韩专区视频网站| 性欧美69xoxoxoxo| 伊人久久视频| 欧美国产另类| 日本麻豆一区二区三区视频| 婷婷亚洲五月| 日本а中文在线天堂| 国产精品丝袜在线播放| 亚洲欧美一级| 欧美综合二区| 欧美午夜不卡| 久久精品亚洲欧美日韩精品中文字幕| 麻豆精品久久久| 国产精品综合| 亚洲毛片视频| 久久一二三区| 午夜精品网站| 日韩成人av影视| 日韩欧美中文字幕在线视频| 日韩专区一卡二卡| 精品1区2区3区4区| 国产一区久久| 亚洲一本视频| 久久影院一区| 91久久国产| 亚洲激情中文| 亚洲激情中文| 红桃视频欧美| 国产精品三上| 免费不卡中文字幕在线| 秋霞影院一区二区三区| 日本综合字幕| 天堂网av成人| 免费观看久久av| 中文在线一区| 热久久免费视频| 四虎精品一区二区免费| 亚洲1区在线观看| 日本久久二区| 国产伦精品一区二区三区在线播放| 日本成人中文字幕在线视频| 日韩国产欧美在线播放| 国产日韩欧美三区| 国产精品九九| 日本成人中文字幕| 国产精品中文字幕制服诱惑| 蜜桃久久久久| sm捆绑调教国产免费网站在线观看| а√天堂8资源在线| 国产 日韩 欧美一区| 国产综合亚洲精品一区二| 亚洲欧美日韩国产综合精品二区| 欧美在线综合| 日本在线不卡视频一二三区| 欧美日本不卡高清| 久久免费福利| 日韩高清成人| 亚洲免费一区二区| 亚洲精品激情| 国产欧美在线观看免费| 精品视频在线你懂得| 成午夜精品一区二区三区软件| 日韩欧美一区二区三区在线观看 | 欧美专区18| 日韩精品免费观看视频| 国产欧美一区二区色老头| 精品久久视频| 99久久亚洲精品蜜臀| 亚洲国内精品| 亚洲人www| 久久精品国产99国产精品| 欧美男人天堂| 久久国产福利| 国产麻豆一区二区三区 | 另类小说一区二区三区| 久久久久久久久久久妇女| 久久亚洲欧洲| 免费看久久久| 香蕉精品视频在线观看| 日本综合视频| 色综合五月天| 亚洲欧美日本国产专区一区| 综合激情视频| 久久久久免费| 国产亚洲在线观看| 久久国产婷婷国产香蕉| 日韩欧美一区二区三区在线视频| 99在线观看免费视频精品观看| 69堂免费精品视频在线播放| 捆绑调教日本一区二区三区| 美女国产精品| 久久精品天堂| 亚洲综合另类| 精品三级久久久| 国产亚洲精品v| 毛片不卡一区二区| 亚洲欧美久久久| 欧美韩一区二区| 亚洲一区二区三区高清不卡| 久久精品一区二区国产| 视频一区二区欧美| 国产精品久久久久久久免费观看| 首页国产欧美久久| 日韩影院二区|