localStorage在android平台非常卡

  • Creator 版本: 2.4.11

  • 目标平台: android / windows模拟器调试

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

我的游戏需要频繁本地保存数据,发现在微信上不卡,但是在android和windows上的模拟器调试非常卡

试试 cc.native.fileUtils.writeStringToFile

更卡 :laughing: :laughing: :laughing:

正常来说,不是任何数据变动就执行localStoreage,每个模块或者功能有一个运行时临时变量moduleData,逻辑只使用和修改它,如果数据有变动,设置一个脏标记,全局开启一个计时器每隔多少秒对有标记的数据进行存储,同时移除标记,对重要数据,例如背包数据的变动,可下一帧存储(防止同一帧背包多次修改数据),然后监听前后台事件,触发就存一次有变动的数据。

不然就只能交给服务器去存。

临近发布,这样逻辑改动太大了。为什么微信上不卡? android是卡到爆

cocos的localstorage底层其实是sqllite,频繁的RW肯定卡

微信小游戏的localstorage的很可能用的是他们自研的mmkv(我猜测的),BenchMark测试mmkv性能吊打sqllite

android_benchmark · Tencent/MMKV Wiki (github.com)

2赞

那官方原生还要用sqlite,不用mmkv :sweat_smile:

@jare 什么时候把mmkv接到引擎里面

我先建个 issue:https://github.com/cocos/cocos-engine/issues/16684

还需要验证其带来的包体增量和其依赖的第三方库是否会有冲突。

1赞

是的,这个库会对包体有影响,另外也要考虑是否会跟第三库冲突

image
原来这个问题19年就提了的。现在还是这样