我想跟蹤分佈式環境中類的實例(如Class1
)的生命週期。例如。有一臺SQL Server計算機,並且有多個連接到該SQL Server計算機的IIS服務器。 IIS機器上有多個ASP.NET應用程序的實例(一臺機器上有一個實例)。在IDisposable.Dispose()中調用數據庫更新
隨着對任何IIS服務器上應用程序的任何實例的每個請求,將創建一個Class1
的實例,並將創建時間記錄到數據庫中。我想知道什麼時候Class1
的實例被銷燬。
那麼明智地讓Class1
執行IDisposable
並將銷燬時間記錄到Dispose()
方法中的數據庫中?考慮到更新包含數百萬條記錄的表可能會耗費時間,並且這會迫使垃圾收集器在處理該對象實例時等待,我不知道該做什麼。
一般的問題是:
是否明智調用耗時的操作中的對象IDisposable.Dispose()
時性能是非常重要的?
請幫我這個問題,
感謝
爲什麼不在Dispose()調用期間將時間/對象信息發送到Queue。然後你可以有一個單獨的線程/進程消耗隊列到數據庫。會更有效率,並且不會混淆垃圾收集速度。 – Matt
@Matt,你是對的!,好主意(異步調用在其他線程上更新數據庫),謝謝 – anonim