對象池

對象池服務可以減少從頭創建每個對象的系統開銷。在激活對象時,它從池中提取。在停用對象時,它放回池中,等待下一個請求。

簡介

對象池使您能夠控制所使用的連線數量,與連線池相反,連線池用來控制達到的最大數量。下面是對象池和連線池之間的重要區別:

創建

使用連線池時,創建在同一執行緒上進行,因此如果池中沒有連線,則代表您創建連線。採用對象池時,池可以決定創建新對象。但是,如果已經達到最大數量,它會給您下一個可用的對象。當需要花費較長時間來創建對象時,這的確是一個重要的行為。但不要長期使用這種方法來創建對象。

最小值和最大值的實施

不在連線池中實施。對象池的最大值在嘗試縮放應用程式時很重要。可能需要僅為幾個對象而復用成千上萬個請求。(TPC/C 基準依賴這一功能。)
COM+ 對象池與 .NET Framework託管 SQL 客戶端連線池幾乎完全相同。例如,創建在不同的執行緒上進行,並強制實施最小值和最大值。
注意
應用程式域會影響對象池的行為。在 Microsoft Windows 2000中,當應用程式激活設定為 Library並且您有多個應用程式域時,將在默認應用程式域中創建所有緩衝池對象,並在多個客戶端之間共享。在同樣的情況下,當使用 Microsoft Windows XPWindows Server 2003時,每個應用程式域都有一個對象池。無論使用哪一種作業系統,當有多個應用程式域,且應用程式激活設定為伺服器時,進程外客戶端將使用默認應用程式域中的對象池。

相關詞條

相關搜尋

熱門詞條

聯絡我們