[英]Realm iOS RAM limitation
來自領域限制: https : //realm.io/docs/objc/latest/#current-limitations
“任何單個Realm文件都不能大於你的應用程序允許在iOS中映射的內存量 - 這會改變每個設備,並取決於該時間點內存空間的碎片程度(有一個雷達打開這個問題:rdar:// 17119975)。如果你需要存儲更多數據,你可以將它映射到多個Realm文件。“
這是否意味着單個Realm文件始終存儲在RAM中? 或者這是否意味着地址空間應該足夠大? 這句話非常令人困惑......
由於Realm在底層使用mmap
,它目前依賴於程序地址空間來擁有一個連續的無人認領地址塊,大於Realm文件的大小。 這是從實際可用內存量不同,因為內存可以free
從地址空間的許多不同部分d,留下了不少未使用的內存,但地址空間沒有足夠大塊來mmap
境界文件。
這是關於內存映射,即使用該文件作為后備存儲的虛擬內存。 從理論上講,操作系統可以通過這種方式訪問無限量的數據,完全獨立於您擁有的RAM數量。 這些文件絕對不會保存在RAM中。 它們占用地址空間,因此您將受限於32位應用程序,但它們不會占用RAM。
在實踐中,我已經嘗試映射1GB文件,並且沒有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.