[英]Do I have to dispose Realm instances?
我有一個以 Realm 作為數據庫的 Xamarin Forms 應用程序。
應用程序在啟動時正在下載數據。 我將它與現有數據進行比較,如果存在特定對象,我會更新它。 如果沒有,那么我添加它。 如果數據庫中有一些對象沒有被下載,我會刪除它們。 當用戶瀏覽應用程序時,我會重復這個過程幾次。 如果可能的話,只是為了讓一切保持最新。
我訂閱了ShouldCompactOnLaunch
事件,我觀察到每次啟動應用程序數據庫時都會使用越來越多的內存,盡管下載的數據沒有任何變化。 我想知道發生了什么? 我是否必須手動處理每個實例? 在官方文檔中,我發現了一個聲明:
The Realm class implements IDisposable in order to take care of native memory deallocation and file descriptors so instances will be closed automatically when variables go out of scope.
https://realm.io/docs/dotnet/latest/#closure-realm-instances
處理每個領域對我來說有點棘手,因為我已經將訪問領域放在我的 DataStoreService 中並且我正在訪問來自不同線程的數據(每次在我的 dataStore 中調用 Realm.GetInstance() )。 但是,如果手動處理是強制性的,那么我將嘗試重構我的代碼。 如果不是,那么我想知道為什么每次啟動應用程序時,realm 都會消耗越來越多的磁盤空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.