javascript - 本地存储的速度/成本

标签 javascript html local-storage

使用 Javascript 在 localStorage 中查找值的速度有多快?

有没有人有指向任何性能测试的链接,这些测试表明是否值得在 JavaScript 对象中缓存数据?或者浏览器是否已经缓存了从 localStorage 访问的值?

我对 localStorage 的 Firefox 和 Chrome 实现特别感兴趣。

最佳答案

刚刚做了个小benchmark。我打算做的是经常从 localStorage 获取一些数据,我想知道它会阻止。虽然 localStorage.getItem 是同步操作,但听起来很可怕,是吗?

  • 第一次测试调用 100 万次 localStorage 以获取确实存在的项目。
  • 第二次测试调用 localStorage 100 万次以获取不存在的项目。

结果:

"Item found: 0.0007991071428571318ms per call"

"Item not found: 0.0006365004639793477ms per call"

简而言之 - 只需使用它。这不需要时间。 1 毫秒的 0.0007。

https://jsbin.com/resuziqefa/edit?js,console

 let results = [];
 let sum = 0;
 localStorage.setItem('foo', 'foo bar baz foo bar baz foo bar baz foo');

 for (let i = 0; i < 1000000; i++) {
   let a = performance.now();
   localStorage.getItem('foo');
   let result = performance.now() - a;
   sum += result;
   results.push(result);
 }

 console.log(`Item found: ${sum / results.length}ms per call`);

 results = [];
 sum = 0;
 for (let i = 0; i < 1000000; i++) {
   let a = performance.now();
   localStorage.getItem('bar');
   let result = performance.now() - a;
   sum += result;
   results.push(result);
 }

 console.log(`Item not found: ${sum / results.length}ms per call`);

关于javascript - 本地存储的速度/成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074218/

相关文章:

jquery - 用 jquery 突出悬停元素

javascript - 从 localStorage 加载的文本在刷新时消失

javascript - RegExp 用于查找并替换两个单独分隔符之间的所有空格

javascript - 浏览器中的 ES6 模块 : Uncaught SyntaxError: Unexpected token import

javascript - 如何使用 Javascript 写入 CouchDB?

JavaScript 媒体源元素

javascript - 如何在javascript中将元素放置在指定位置

html - Grid CSS 没有正确布局区域

javascript - Cordova - 如何从本地存储保存和读取 JSON 对象

如果禁用 Cookies,iOS7 无法访问 HTML5 localStorage