Article / 2026/05/31

性能优化 (五十七) 存储优化

性能优化 (五十七) 存储优化 的技术笔记。

存储优化

常规方案

  • 确保IO操作发生在非主线程
  • Hook或者是AOP辅助

存储优化

  • SharePreferences相关
  1. 加载慢:初始化加载整个文件
  2. 全量写入:单次改动都会导致整体写入
  3. 卡顿:补偿策略导致
  • SharePreferences替代者MMKV
  1. mmap和文件锁保证数据完整
  2. 增量写入、使用Protocol Buffer
  3. 支持从SharePrefrences迁移

日志存储优化

  • 大量服务需要日志库支持
  • 对于性能的要求:不影响性能、日志不丢失、安全
  • 常规实现
  1. 每产生一个日志,写一遍到磁盘中:不丢失、性能损耗
  2. 开辟一个内存buffer,先存buffer,再存文件:丢日志
  • mmap
  1. 内存映射文件
  2. 优势:高性能、不丢失
  3. 业界实现:Xlog、Logan
  4. 其他
  5. 常用数据的缓存,避免多次读取
  6. 合理选择缓存区Buffer大小:4-8kb

Giscus 未启用:请在 src/site.config.ts 中配置 repoId 与 categoryId。