php能處理高並發嗎?php高並發解決方案

來源:互聯網
上載者:User
php在執行的過程中究竟是如何處理高並發問題的,接下來我們具體的來看一下關於PHP高並發的一個解決方案。

先來看看php在伺服器的執行過程:當使用者請求伺服器php檔案的時候,伺服器將對php檔案進行文法分析,其次是解析,最後才運行。當php檔案有內容輸出時,該內容會先經過伺服器的php的緩衝區(buffer),然後再通過TCP傳遞到用戶端。(buffer其實就是緩衝區,一個記憶體位址空間,主要用於儲存資料區域)

可見,如果使用者直接存取靜態頁面的時候,伺服器的回應時間一般會比訪問動態檔案的時間短。如果我們能把使用者將要訪問的動態檔案先轉化為靜態檔案即可加快使用者訪問頁面的速度(擷取網頁的速度)。當然我們要注意靜態化的應用情境,頁面的靜態化主要應用於那些頁面內容不經常改動的頁面。

關於靜態化,PHP的靜態化分為:純靜態和偽靜態。其中純靜態又分為:局部純靜態和全部純靜態。這裡將的是全部純靜態。

頁面靜態化其中之一的方法是藉助PHP內建的緩衝區OB:

下面是頁面緩衝的簡單實現

<?php//可以根據 前端傳遞參數 COOKIE等進行緩衝$id = $_GET['id'];//設定緩衝檔案名稱$cache_name = md5(__FILE__) . '-' . $id . '.html';//失效時間$life = 3600;//判斷檔案是否存在以及是否到期if (file_exists($cache_name) && (filectime($cache_name) > time() - $life)) {    include $cache_name;    exit;}//開啟緩衝區ob_start();echo date('Y-m-d H:i:s');$content = ob_get_contents();ob_end_clean();//寫入到緩衝檔案file_put_contents($cache_name, $content);echo $content;

除了以上方法之外,我們可以利用架構內建的一些緩衝機制來實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.