3 回答

TA貢獻1824條經驗 獲得超5個贊
如果您希望在所有通話中獲得最佳性能,則應仔細考慮您的體系結構。例如,當應用程序加載時,將經常使用的查詢預先緩存在服務器RAM中可能是有意義的,而不是對每個請求都使用數據庫調用。該技術將確保對常用數據的最小應用程序響應時間。但是,您必須確保具有行為良好的到期策略,或者在進行任何會影響緩存數據的更改時始終清除緩存,以避免并發問題。
通常,您應該努力設計分布式體系結構,以便僅在本地緩存的信息過時或需要進行事務處理時才需要基于IO的數據請求。在內存緩存檢索中,任何“在線”數據請求的檢索時間通常比本地檢索時間長10-1000倍。僅憑這一事實,與“本地與遠程”數據問題相比,有關“冷數據與熱數據”的討論就顯得無關緊要了。

TA貢獻1804條經驗 獲得超2個贊
一般提示。
執行嚴格的日志記錄,包括訪問內容和請求時間。
初始化應用程序以熱啟動從上一步中拾取的非常慢的請求時,請執行虛擬請求。
除非存在實際問題,否則不要費心進行優化,與應用程序的使用者進行交流并提出要求。如果只是想找出需要優化的內容,就可以輕松擁有一個連續的反饋循環。
現在來解釋為什么虛擬請求不是錯誤的方法。
降低復雜性 -您正在以一種可以在不更改框架的情況下運行的方式對應用程序進行預熱,并且無需弄清楚可能的時髦API /框架內部結構就可以正確地進行操作。
更大的覆蓋范圍 -您正在立即對與緩慢請求有關的所有緩存層進行預熱。
解釋高速緩存何時“冷”。
這種情況發生在您框架中應用緩存的任何層,性能頁頂部有一個很好的描述。
每當在可能使緩存失效的潛在更改之后必須驗證緩存時,這可能是超時或更智能的(即,緩存項的更改)。
逐出緩存項時,鏈接的性能文章中的“緩存逐出算法”部分對此進行了描述,但總而言之。
LFRU(最不常用-最近使用)緩存命中次數和年齡,限制為800個項目。
您提到的其他內容(特別是重新編譯和重新啟動IIS)會清除部分或全部內存緩存。
- 3 回答
- 0 關注
- 532 瀏覽
添加回答
舉報