我弄的威注音输入法( macOS )目前用的是 plist 辞典,一直都是塞在 RAM 当中的,导致 RAM 占用居高不下( 170MB 左右)。这样肯定无法移植到 iOS 上,因为 iOS 对副厂输入法有 30MB RAM 的配额封顶限制。
但我这套输入法还对 macOS 10.9 有兼容性需求,所以 SQLite.swift 用不了了。
忽然想到 UserDefaults ,于是想知道这玩意是一直在 RAM 当中、还是 SSD 直接读取(按需读取)。 如果是后者的话,没准可以节省 RAM 开支。
1
qq2511296 338 天前 1
你尝试下这个 mmkv
https://github.com/Tencent/MMKV |
2
qq2511296 338 天前 1
另外微信这 wcdb 也开源了
https://github.com/Tencent/wcdb |
3
maxmak 338 天前 1
后者,value 多的话,会很慢
|
5
shawndev 337 天前 1
UserDefaults 读写效率不行,相比而言 MMAP 要好得多。具体到你的场景,其实可以参考 rime 的做法,用 LevelDB 。
|
6
shawndev 337 天前
BTW ,Plist 的信噪比太低了不适合作为词库的格式。可以自己定义一个 bin 格式或者参考 rime 的做法用 trie 做存储。
|