我正在测试不同的浏览器如何从本地存储读取/写入大量数据。样本数据是1500个客户记录,其中包含每个人的一些数据集(名字,姓氏,其位置,类型等的一些ID)。测试应用程序基于GWT paltform。
我注意到IE8,IE9,Chrome在从本地存储(而不是从Web服务器)加载数据后,性能提升了至少30%。只有Firefox(5.0)才能使结果恶化(大约慢30%)。远程网络服务器用于将某种现实带入实验。 浏览器之间的差异在小数据块(100-200条记录)上几乎不可见,并且结果时间也将大致相同。但是大量数据揭示了这个问题。
我发现在mozilla支持网站上提到了这个问题 - https://support.mozilla.com/en-US/questions/750266 但仍然没有解决方案或解决方法如何解决它。
Javascript分析显示在GWT StorageImpl.java类中实现的函数调用
function $key(storage, index){
return index >= 0 && index < $wnd[storage].length ?
$wnd[storage].key(index) : null;
}
在执行期间占据了大部分时间。这实际上是GWT中的storage.getItem(key)调用。
为了避免这种频繁的调用,我宁愿选择单个调用来将存储内容转换为地图,这可能有助于我节省在Firefox的缓存I / O操作上花费的时间(如果有的话)。但是存储接口(http://dev.w3.org/html5/webstorage/#storage-0)仅包含getItem()函数以从存储中接收任何内容。
有关如何强制Firefox 更快的任何想法?
P.S。也许对某人有用:我使用插件SQLite管理器找到FF本地存储内容,并从默认内置数据库的下拉列表中加载 webappstore.sqlite 数据库。
答案 0 :(得分:0)
您正在测试哪个版本的Firefox?你在support.mozilla.org上的帖子提到了Firefox 3.6.8,你提到IE,所以大概是在Windows上,在这种情况下你可能会点击{4}}在Firefox 4中修复了。或者你看到了最近的Firefox出现问题?