2011-05-09 16 views
0

某些頁面需要很長時間才能加載。我假設它來自所有的PHP - 使用大量的fopenfget陳述。我能做些什麼來使這些頁面加載速度更快?如何加快有很多php加載的頁面?

+1

少使用'fopen'和'fget',或購買更快的連接。 – zerkms 2011-05-09 01:56:05

+0

@zerkms你是什麼意思? – 2011-05-09 01:56:39

+0

你不能從我的話中得到什麼?如果fopen是個問題 - 避免使用它。這對我來說很明顯。 – zerkms 2011-05-09 01:57:30

回答

1
  1. 使用Xdebug來分析您的代碼並對其進行重構。
  2. 使用PHP accelerator來緩存字節碼,如XCache
  3. 將頁面分成更小的塊並使用AJAX將它們一次全部拉出
  4. 使用HTTP加速器,如varnish
  5. 以任何其他方式緩存頁面(或整個頁面)的位。
+0

感謝這是第一個合理的答案 – 2011-05-09 02:17:53

+1

「合理」,但不幸的是這個問題本身沒有任何關係:「如何使更多的'fopen'更快」 – zerkms 2011-05-09 02:19:27

3

實施積極的緩存。

+0

接下來的問題將是:「我如何使緩存無效,我的頁面始終包含過時的信息」)) – zerkms 2011-05-09 01:58:16

+0

簡單。緩存寫入。 – 2011-05-09 02:00:41

+0

緩存寫入以及何時使緩存失效? ;-)如果他總是需要實際數據 - 緩存不會提高遠程通話性能。 – zerkms 2011-05-09 02:04:25

2

,數據庫可能會更快,如果您使用的是大量的文件資源作爲數據層的解決方案。

或者,考慮高速緩存您的頁面,從客戶端HTTP緩存開始並稍後考慮服務器端緩存。

除此之外,需要更多的細節(在哪個階段我們基本上爲您諮詢)。

1

如果你真的需要用fopen執行很多遠程調用 - 我建議你創建某種隊列並實現一些工作,它可以同時處理線程。

因此,在您的PHP代碼中,您將「任務」放入隊列並等待答案。與此同時,快速和高性能的守護進程(用c/C++/python或任何支持線程的語言編寫)從隊列中讀取任務並將響應放入另一個隊列中。