HTML localStorage setItem和getItem性能接近5MB限制?

前端之家收集整理的这篇文章主要介绍了HTML localStorage setItem和getItem性能接近5MB限制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在建立一个使用 HTML localStorage的小项目.虽然我没有接近localStorage的5MB限制,但我决定做压力测试.

本质上,我将数据对象加载到单个localStorage对象中,直到它稍微低于该限制,并且必须请求设置并获取各种项目.

然后我定时执行setItem和getItem using the javascript Date object和事件处理程序(绑定获取并设置为HTML中的按钮,只需点击= P)

表现是可怕的,要求在600ms到5,000ms之间,内存使用量在接近20万的情况下接近20万.这是在MacOSX上使用Google Chrome的单一扩展名(Google Speed Tracer).

在Safari中,基本上都是4,000ms以上.

Firefox是一个惊喜,几乎没有超过150毫秒.

这些都完成了基本上是空闲的状态 – 没有YouTube(Flash)的方式,没有很多选项卡(除Gmail之外),没有应用程序打开除了后台处理浏览器.一旦出现内存密集型的任务,localStorage也会逐渐减慢. FWIW,我正在运行2008年底Mac – > 2.0Ghz双核与2GB DDR3内存.

===

所以问题:

>有没有人完成了针对localStorage的基准测试,并设置各种不同的键值和值大小,以及在不同的浏览器上?
>我假设Firefox之间的延迟和内存使用的差异很大,其余的是Gecko vs Webkit问题.我知道答案可以通过潜入这些代码库来找到,但我一定想知道其他人是否可以在这两个引擎上解释localStorage实现的相关细节,以解释跨浏览器的效率和延迟的巨大差异?

不幸的是,我怀疑我们将能够解决问题,但是我们可以得到的最少是了解浏览器在当前状态下的局限性.

谢谢!

解决方法

浏览器和版本成为这里的主要问题.事实是,虽然有所谓的“基于Webkit的”浏览器,他们也添加了自己的修补程序.有时候,它们会进入主要的Webkit存储库,有时它们不会.关于版本,浏览器总是移动目标,所以如果您使用测试版或夜间版本,这个基准测试可能会完全不同.

那就是整体用例.如果你的用例不是规范,那么这个问题就不会那么明显了,而且不太可能被注意到并且被广泛使用.即使有补丁,浏览器厂商也有很多问题需要解决,所以有机会为另一个版本设置(再次,夜间版本可能会产生不同的结果).

老实说,如果还没有解决,最好的方法是在适当的浏览器邮件列表/论坛上讨论这些结果.人们将更有可能做测试,看看结果是否匹配.

猜你在找的HTML相关文章