2013-01-03 77 views
1

是否有可能使用會話變量來顯着降低應用程序的速度?是否有可能「過度使用」會話變量?

我不是想要。我只想知道會話變量是否適用於大量數據。

+0

任何東西都可能被過度使用,它實際上取決於您對過度使用的定義或數據量有多大 –

+2

如果您必須使用大量會話變量,可能需要重新考慮您的策略。 :) – summea

+0

那麼,基本上這個定義是'顯着減緩應用程序'。所以,如果我有一個會話變量持有1MB數據,或者我有1000個會話變量,總共有1MB數據,那麼只需要將一個數字作爲起點,如果我有一個會導致應變?這個比那個好嗎?這一切都沒有意義嗎? ;) –

回答

2

這取決於你如何存儲會話數據。默認會話存儲是基於文件系統的,每個會話都有自己的文件。該文件在頁面加載時自動加載。文件變得越大,加載它的時間就越長。加載後,它只是一個關聯數組。每個項目都可以在log(n)時間(最有可能)訪問。

但是,如果您擁有Redis(使用phpredis)或其他會話數據存儲,則不必在每次頁面執行時持久保存和加載數據,因此在會話中存儲太多數據時不會有性能損失。

+0

對,當然。當我閱讀有關會話變量的內容時,我確實已經讀過它們保存在文件系統中的內容。它沒有點擊我的腦海,把它看作是一個文件,而不是它在PHP中出現的內存對象。謝謝。 –

相關問題