2009-12-17 100 views
4

我有一個應用程序使用應用程序緩存來存儲生成的響應,但自定義HTTP處理程序。相同的響應總是返回給同一個URL的請求,並且整個響應被整個插入到緩存中。輸出緩存與應用程序緩存?

如果某個應用程序正在緩存每個URL,那麼使用應用程序緩存有什麼優勢嗎?或者我應該只使用輸出緩存?

請注意,因爲我正在使用自定義HTTP處理程序,所有這些都是在C#中完成的,而不是在頁面指令中完成的。

回答

1

假設您不使用授權並且沒有使用動態內容,則越低級別您的結果越好。最低級別是內核模式緩存。 http://learn.iis.net/page.aspx/154/walkthrough-iis-70-output-caching/

從辦公室角度考慮它。 從技術上講,請求鏈是:老闆,祕書,電話答錄機和電話線路提供商。

想象一下沒有祕書的辦公室。老闆必須回答每一個電話。這是一個沒有緩存的場景。

應用程序緩存是祕書。它處理電話,所以老闆(應用程序)不必回答,只是一遍又一遍地講同一件事。 祕書是坐在老闆和外部世界之間的人。她可以處理大多數簡單的情況。當沒有祕書在工作時(低內存),老闆會很困擾。但是祕書是一個人,所以她在晚上的某個時間回家(ASPNET應用程序在某個時間回收,而應用程序緩存得到了暴露,所以就ASPNET而言,祕書與老闆共用同一個應用程序) 。

這裏有一個應答機來玩。它不僅可以讓祕書一次又一次地回答愚蠢的問題,而且在沒有祕書的情況下屏蔽老闆。這只是一臺機器,當祕書和老闆都不能回答時,客戶端會聽到預先錄好的聲音或音樂(緩存項目)。

IIS緩存內核模式是asnet「office」的應答機。答錄機要比貨幣便宜得多。它只是一個帶有磁帶的微控制器,它甚至不消費咖啡,它只是播放一個磁帶或類似的東西。

它運行在同一個盒子上,但性能更好,因爲它只是簡單地完成了通過自己的低級系統資源管理以最大速度發送內容的簡單任務。

也就是說,如果您在性能方面具有半動態內容,則內核模式是緩存的推薦方式。

0

首先,我將陳述通常的警告,它取決於具體情況下的。因素,如可用的網絡服務器的內存,負載,頁面大小,數據大小等

這就是說,如果沒有大量的網址,他們不必非常新鮮,那麼輸出緩存將我相信有優勢。尤其是如果你打算公開這麼做的話,那就是鼓勵在isp和瀏覽器級別緩存。從而節省服務器上的負載並縮短返回用戶或使用相同isp或代理的用戶的旅程。

+0

輸出緩存如何影響瀏覽器緩存響應的方式?使用它會導致設置過期標題以及在IIS中緩存響應? – ctford 2009-12-17 17:21:08

0

我認爲這將取決於您是否需要在運行時從代碼內編程調整緩存的設置。如果你不這樣做,那麼聲明性地設置輸出緩存就沒問題。