Closed liangzhanggb closed 3 years ago
是如何做到 GC 时间的的降低呢?
我们知道,通常一个扇区擦除的时间在45~100ms左右,如果easyflash扇区有400K空间,
有些场景,夸张一点,例如每次上电只更新boot_times,老版本一次gc可能就需要 4.5 S~ 10 S,这个显然会影响大部分用户的体验。而增加这个patch后,可能只需要擦除2个扇区就可以了(因为有提前终止逻辑,得益于原有架构已经考虑到提前终止逻辑)。
如果当前patch对软件架构理解不够,还请 @armink 辛苦帮忙指点一下,多谢多谢。
我大概明白了,是 GC 时候不对所有扇区进行 GC ,只 GC 一个扇区就退出,这样格式化扇区的数量少,时间也就少了,挺不错的想法 👍
另外,DEFAULT_GC_FLAG
是做什么用处?
这边发现有个case过不了,pr暂时close,修复后再重新提交,多谢多谢。
关于easyflash4的gc逻辑是空间不够了,然后触发一次gc,但是gc的时间过长会影响用户的体验。 因此,我们尝试去修改了这部分逻辑,尽量避免一次gc耗时过长。