V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
ShikiSuen
V2EX  ›  iDev

UserDefaults 是一直塞在 RAM 当中、还是 SSD 直读?

  •  
  •   ShikiSuen · 301 天前 · 1330 次点击
    这是一个创建于 301 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我弄的威注音输入法( macOS )目前用的是 plist 辞典,一直都是塞在 RAM 当中的,导致 RAM 占用居高不下( 170MB 左右)。这样肯定无法移植到 iOS 上,因为 iOS 对副厂输入法有 30MB RAM 的配额封顶限制。

    但我这套输入法还对 macOS 10.9 有兼容性需求,所以 SQLite.swift 用不了了。

    忽然想到 UserDefaults ,于是想知道这玩意是一直在 RAM 当中、还是 SSD 直接读取(按需读取)。 如果是后者的话,没准可以节省 RAM 开支。

    7 条回复    2023-06-03 01:22:25 +08:00
    qq2511296
        1
    qq2511296  
       301 天前   ❤️ 1
    你尝试下这个 mmkv
    https://github.com/Tencent/MMKV
    qq2511296
        2
    qq2511296  
       301 天前   ❤️ 1
    另外微信这 wcdb 也开源了
    https://github.com/Tencent/wcdb
    maxmak
        3
    maxmak  
       301 天前   ❤️ 1
    后者,value 多的话,会很慢
    ShikiSuen
        4
    ShikiSuen  
    OP
       301 天前
    @maxmak 太谢谢了。这输入法原厂辞典有简体中文与繁体中文两种(我不信任繁简转换,因为一定会出错),每个辞典 plist 不到 12MB 。
    shawndev
        5
    shawndev  
       300 天前   ❤️ 1
    UserDefaults 读写效率不行,相比而言 MMAP 要好得多。具体到你的场景,其实可以参考 rime 的做法,用 LevelDB 。
    shawndev
        6
    shawndev  
       300 天前
    BTW ,Plist 的信噪比太低了不适合作为词库的格式。可以自己定义一个 bin 格式或者参考 rime 的做法用 trie 做存储。
    ShikiSuen
        7
    ShikiSuen  
    OP
       299 天前
    @shawndev 今天刚刚换了 JSON ,读取速度比 Plist 慢了一倍(原先一秒,现在两秒)。
    但整个记忆体占用量下降了,且档案体积也小了不少(因为索引由 UTF16 变成 UTF8 )。

    感谢推荐 LevelDB ,回头我再研究一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3130 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.