簡體   English   中英

極慢的性能結構

[英]Very slow performance structure

由於我沒有錯誤,所以我不知道這是問這個問題的正確地方,如果不是,請指出正確的論壇。 隨便...

我正在一個社交網絡項目上工作,現在它運行速度非常慢,某些頁面的加載時間約為5到15秒。 有一個“緩存”結構,但是無論這樣做的人是誰,都沒有使用它從c#.net中構建Cache ,而是創建了一個靜態List<object>作為系統的緩存。 甚至Hardt也不對,我可以解決這個問題。

問題是,在每個頁面請求上,我都必須從此cache加載用戶數據,而且用戶結構也很大,所以我想知道,而不是每次在頁面加載時都從緩存加載用戶數據請求,我將使用每個頁面需要的最常用數據(例如照片,姓名,昵稱,ID)創建一些會話,然后當我需要從用戶中加載不常見的其他任何類型的數據時,我從緩存中請求它...

我不知道這是否是正確的方法,不是問這個地方是否正確,但是我真的很想解決這個問題。 因此,我想請專家們提供一些建議。

性能問題的一部分可能是需要在緩存中掃描項目。 字典可能更好,因為您可以按鍵檢索項目。 這是與本機緩存結構更接近的實現。

會話不利於網站的可擴展性。 如果您計划將其設置為與Facebook一樣大,則使用會話進行緩存會殺死您

參見其他相關問題:

什么是在Web應用程序中存儲大型臨時“會話”數據的好方法

另一個體面的問題

為什么使用Session在高流量網站中存儲狀態不是一個好主意?

同意傑森+1

根據您的評論,用戶對象具有一個密鑰(ID)。

如果您有鑰匙,字典會更快。 此外,重寫gethash並等於您的對象是否具有可以表示為Int32的自然鍵。 針對10,000的字典查找應為毫秒。

鍵控收藏聽起來像您所需要的。 對於鍵控集合,屬性(ID)之一就是鍵。
密鑰集合

如果這是一個靜態列表,我將通過數據庫進行詞典搜索。 由於您只有一個字典,因此字典將擊敗數據庫。 如果它是復合鍵,那么您將不得不使用數據庫進行索引查找。

暫無
暫無

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

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