簡體   English   中英

PHP速度優化

[英]PHP speed optimisation

我想知道PHP中的速度優化。

我有一系列文件,每個頁面加載請求。 平均有20個文件。 如果已更改,則必須讀取每個文件並對其進行解析。 這是排除網頁所需的標准文件(HTML,CSS,圖像等)。

EG - >客戶端請求頁面 - >服務器輸出html,css,images - >服務器輸出動態內容(20 +/-文件合並和縮小)。

盡可能快地提供這些文件的最佳方法是什么?

在想知道速度優化之前,人們應該對profiling感到疑惑, profiling由兩部分組成:

  • 決定我們是否需要任何速度優化。
  • 如果是這樣 - 確定我們的應用程序的某些部分成為“瓶頸”並要求優化, 不同於任何其他部分

最后一個可能遠遠超出你夢寐以求的遠遠。

你在這里沒有提供足夠的信息來做出明智的答案。 到目前為止,最大的好處是來自有效的內容緩存 - 但您可能需要查看的不僅僅是您發送的標頭 - 您可能需要開始調整文件名(或URL的查詢部分)以有效地允許瀏覽器使用較新的內容代替緩存(而非過期)內容。

我有一系列文件,每個頁面加載請求。 平均有20個文件。

這些都是 php腳本嗎? 它們都是HTML頁面引用的嗎?

如果已更改,則必須讀取每個文件並對其進行解析

你的意思是他們必須在服務器上閱讀和解析? 為什么? 閱讀此文章 ,了解有關如何識別和提供可緩存靜態內容的新版本的詳細信息。

你看過服務器端緩存了嗎? 它不是那么難:

<?php

    $cached=md5($_SERVER['REQUEST_URI']);
    $lastmod=time() - @mtime($cache_dir . $cached)
    if ((file_exists($cache_dir . $cached)) && (60 < $lastmod)) {
       print file_get_contents($cache_dir . $cached);
       exit;
    } else {
       ob_start();
   ... do slow expensive stuff
       $output=ob_get_contents();
       print $output;
       file_put_contents($output, $cache_dir . $cached);
    }
?>

請注意,服務器端緩存不如客戶端緩存有效。

一旦你獲得了最佳的緩存,那么你需要考慮從多個主機名提供內容 - 即使它們都指向同一個服務器 - 瀏覽器限制它對每個主機名的連接數,因此請求有效排隊什么時候他們可以並行運行。

為了進一步解決您的問題,我們需要了解更多有關您的應用程序的信息。

C。

如果您正在談論PHP文件,請使用eAccelerator。 如果您正在討論其他文件,請檢查filemtime以查看是否已更改它們以及是否必須再次解析它們。

此外,使用yslow來確定您的網站速度慢的原因。

有幾種方法可以保留PHP文件的操作碼緩存,自動檢查文件修改。 APC是我非常喜歡的其中之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM