請問能理解本主題的專業人員回答我的問題嗎?在所有會話中頻繁引用應用程序變量
我用傳統的ASP工作,對不起,如果我的問題似乎是微不足道的,但我不理解反覆引用的應用程序變量是閱讀而不是修改的開銷。
我已經宣佈,緩存大的字符串和其他陣列全局應用程序級的變量。
在sessionOntart中,我將應用程序變量分配給會話變量。然後,在每個頁面上,我將會話變量分配給本地變量以避免重複使用會話變量。
我的問題是我能不能直接和重複使用的應用程序變量在每個頁面上的每個會話,否則此操作創建一個問題嗎? 換言之,考慮以下兩種情況:
方案1:
--in applicationOnStart:
申請(「globalArray」)=大陣列的數千串和數組元素的
--in sessionOnStart:
會議(「globalArray」)=的應用(「globalArray」)
- 兼論網站的每一個頁面:
昏暗anArray anArray =會議(「globalArray」) 現在使用anArray作爲根據需要多次。
塞納里奧2:
--in applicationOnStart:
申請(「globalArray」)=大陣列的數千串和數組元素的
- 論的網站使用的每一頁根據需要應用(「globalArray」)多次。
我的問題:考慮到繁忙的網絡流量,是方案2或更好的方案1?
感謝您的回覆。答案是沒有必要爲每個用戶提供數組的唯一副本。我只需要了解在每個會話中多次寬鬆地使用應用程序變量是否可行。所以我的理解是,根據需要經常使用應用程序變量來訪問它的內容沒有任何開銷。你確認嗎? – Dave123
@ Dave123基本上,是的。與僅具有一個對象的中心副本相比,在內存中具有數百或數千個同一對象的副本會有相當多的開銷。但是,如果對象可以更改,那麼有一個由多個用戶共享的副本可能會出現併發問題,但正如我所瞭解的那樣,此對象是隻讀的,因此您最好在內存中只使用一個副本。 – wweicker
再次感謝您的回覆。我很感激。如果你不介意我問這個相關的問題有這個Miicrosoft提示頁面在https://msdn.microsoft.com/en-us/library/ms972335.aspx#asptips_topic4 在tip2下,最後一段說:「用自定義方法構建自定義組件來存儲氣象站會好得多「。 這個信息對我很模糊。你認爲他們的意思是從數據庫中獲取站點然後循環,並將每個站點分配給一個數組元素。然後通過com方法訪問數組以使用更少的內存? – Dave123