Realmを迅速なiOSアプリケーションの持続ストアとして使用しています。iOS:Realmファイルのサイズが指数関数的にGBを超えています
私はそれぞれ6つの列を持つ4つのテーブルがあり、各テーブルは各テーブルに5kのエントリを持っています(すべてが文字列です)。この構造は3GBに達しています。
問題は3GBに達しますか?
Realmを迅速なiOSアプリケーションの持続ストアとして使用しています。iOS:Realmファイルのサイズが指数関数的にGBを超えています
私はそれぞれ6つの列を持つ4つのテーブルがあり、各テーブルは各テーブルに5kのエントリを持っています(すべてが文字列です)。この構造は3GBに達しています。
問題は3GBに達しますか?
まず、データが実際には3Gバイトであるかどうかを確認してください。トランザクションバージョンデータが多い場合は、ファイルサイズが実際のサイズより大きくなります。これを行うには、コンパクションを実行するか、レルムファイルをコピーします。
詳細をご覧ください。 https://realm.io/docs/swift/latest/#limitations-file-size をその時に、ファイルのサイズが変更されない場合は、それを小さくすることができないので、データの3つのバイトは、実際に、保存されています。 ファイルサイズが小さくなると、トランザクションのバージョンが固定されているため、ファイルサイズが実際よりも大きくなります。
あなたのコードを見ると、Realmをマルチスレッドで使用しているため、意図しないバージョンのピンが発生する可能性があります。 Realmインスタンスの存続期間を最小限に抑えるために自動解放プールを使用してください。また、ComplatOnLaunchを起動時に定期的に圧縮するように設定すると、問題を解決するのに役立ちます。
レルムに書き込む際に、レルムブラウザを使用していますか?これに関連する[既知の問題](https://github.com/realm/realm-cocoa/issues/2412)があります。 –
'DispatchQueue.async'を使って、' autoreleasepool {'を使うのを忘れましたが、小さなトランザクションがたくさんあります。 – EpicPandaForce
これはおそらく役に立ちます:https://stackoverflow.com/questions/46228149/unexpectedly-large-realm-file-size – joern