我通過使用SQLite.Net異步庫從SQLite數據庫緩存實體,因爲它們是經常需要的。當我導航到一個使用大量綁定來顯示實體的特定頁面(下面解釋)時,發生了一個'無限'GC循環。Xamarin形式Android GC循環
要緩存我使用
SQLiteAsyncConnection.Table<T>().ToListAsync()
實體和他們在一個
ConcurrentDictionary<Type, IEnumerable<IEntity>>
存儲在此之後我用
Parallel.ForEach()
與負載的反射和遞歸來映射每個實體。這個過程似乎是相當快...
當我導航到麻煩的頁面時,它檢索緩存的實體,並將它們顯示在ListView中。當一個實體被輕敲時,關於實體的信息應該通過綁定顯示在屏幕上。當用戶點擊屏幕時,循環開始。
我與HAXM,2GBRAM,256Heap大小和Galaxy Tab的運行模擬器,而我不知道是什麼類型測試了這兩個有同樣的問題(altough平板之前可以處理更多的實體循環開始)。
我知道這可能是不夠的信息,我會提供更多,但我只是不知道在哪裏看或可能導致此。
任何幫助,非常感謝!
你的,
請你分享一個可以重現問題的基本演示嗎? –
今天我會努力工作! –