讓網站飛起來,PHP程式加速探索

來源:互聯網
上載者:User
關鍵字 讓網站飛起來,PHP程式加速探索

   (一)簡介
  本文嘗試對PHP程式加速的各個方面進行探索,包括必要性以及從不同角度採取的具體措施。希望有助於讀者瞭解PHP程式加速,並應用於實際。
  
   (二)是否需要加速?
  這個問題聽起來有點愚蠢。在這個時代,很少有人會懷疑時間是最寶貴的財富,尤其是在商業市場上。程式執行越快,使用者就節約越多的時間,這樣你的程式就可以用更少的時間和伺服器資源為使用者服務,從而產生更多效益。
  我想對於大部份人(包括我自己)來說,很多WEB項目都是在很緊張的時間裡完成的,通常沒有經過縝密的思考和嚴格的測試。當開始一個新的WEB項目。很多人都在構建那種“快而亂”的應用,缺乏必要的時間來調整和改良代碼,這時最佳化和加速就是我們必須採取的措施。
  然而需要特別指出的是,並不是所有程式都需要加速。
  最佳化已完成的代碼是很浪費時間的,最好的方法是在寫代碼的時候就注意到效率,然後完成項目後只最佳化確實需要最佳化的那部份。一般一個程式只會有少數幾個影響速度的瓶頸,將它們找出來並解決掉,程式就可以很好地運行。另外,當遇到執行效率低下的情況,首先要用大局的眼光來找出影響效率的主要因素,而不要拘泥於細節—例如資料量過大,伺服器頻寬不夠,或硬體設定過低,在這樣的情況下,最佳化代碼於事無補。
  另外,在沒有發現程式有明顯的執行緩慢的跡象時,就不要太吹毛求疵,為了改進一些非常細節的代碼而浪費時間。用這些時間,你可以完成另一個項目或為原來的項目完成一個擴充功能。當然你可以笑話我不夠負責,沒有把工作做得盡善盡好,我也可以說你是完美主義者:-)
  綜上,在你決定為你的PHP程式提速之前,問問自己是否有必要。
  
   (三)如何加速?
  要回答“如何加速”這個問題前,需要先回答以下兩個小問題:
  你的程式慢在哪一部份?
  PHP可以從哪幾個方面考慮加速?
  第一個小問題顯然我無法給你答案,但我建議你用“測試指令碼執行速度”的方法來解決。只有找出限制速度的瓶頸,才能考慮如何去解決。
  第二個小問題我大概的答案是:代碼最佳化,壓縮輸出,內容緩衝輸出,函數緩衝輸出,加速/緩衝工具軟體。如果你知道更多請告訴我:-)
  下面我們來詳細地研究一下這幾個方面的相關技術。當然實際上每個方面都有無數的細節可以討論,下面的內容難免會有片面的地方,歡迎補充。
  
  <1> 測試
  ◆ 伺服器負載測試
  
  伺服器負載太大而影響程式效率也是很常見的,我們需要對此進行測試。這裡我以目前最常用的apache(Unix平台最流行的WEB伺服器平台)伺服器為例。
  apache(Unix平台最流行的WEB伺服器平台)伺服器內建有一個叫AB(apache(Unix平台最流行的WEB伺服器平台)Bench)的工具,在bin目錄下。使用這個輕巧的工具我們可以對伺服器進行負載測試,看看在重負荷之下伺服器的表現如何。apache(Unix平台最流行的WEB伺服器平台)Bench 可以針對某個特定的 URL 模擬出連續的聯機請求,同時還可以模擬出同時間點數個相同的聯機請求,因此利用 apache(Unix平台最流行的WEB伺服器平台)Bench 可協助我們在網站開發期間模擬實際上線可能的情況,利用模擬出來的資料作為調整伺服器設定或程式的依據。
  在命令列下輸出:
  
  ./ab -n number_of_total_requests -c number_of_simultaneous_requests http://your_web_server/your_php_app.php
  
  例如:
  
  ./ab -n 1000 -c 50 http://www.domain.com/myapp.php
  
  AB將同時向http://www.domain.com/myapp.php發出50個並發請求,共發出1000次。
  測試結果將可能是這樣的:
  
  Server Software: apache(Unix平台最流行的WEB伺服器平台)/2.0.16
  Server Hostname: localhost
  Server Port: 80
  Document Path: /myapp.php
  Document Length: 1311 bytes
  Concurrency Level: 50
  Time taken for tests: 8.794 seconds
  Complete requests: 1000
  Failed requests: 0
  Total transferred: 1754000 bytes

9 7 3 123456 4 8 :

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.