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

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

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

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

Mike asked 2020-07-12T23:16:16Z
3个解决方案
29 votes

对于它的价值,这里是一个jsperf测试。

localStorage的基准使用率比FF7和IE9中对常规对象属性的访问要慢得多。 当然,这只是一个微基准,并不一定反映实际使用情况或性能...

从我的FF 7运行中提取的样本以“操作/秒”的形式显示了“明显较慢”的含义:

            native     local-storage    notes
small set   374,397    13,657           10 distinct items
large set   2,256      68               100 distinct items
read-bias   10,266     342              1 write, 10 reads, 10 distinct items

另外,对可以在localStorage中放置的内容也有限制。 YMMV。

Alexander Abakumov answered 2020-07-12T23:16:55Z
20 votes

只是做了一个小的基准。 我计划要做的是经常从localStorage获取一些数据,我想知道它是否会阻塞。 当localStorage.getItem进行同步操作时,听起来可能很恐怖,但这是吗?

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

结果:

“找到的项目:每次呼叫0.0007991071428571318ms”

“找不到项目:每次呼叫0.0006365004639793477ms”

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

[HTTPS://就是宾.com/热塑自前额发/edit?就是,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`);
Lukas answered 2020-07-12T23:17:45Z
3 votes

苹果对苹果

localStorage与对象存储进行比较没有太大的价值,二者在JavaScript中的用途不同。 您可能只需要在您的应用程序中触摸几次localStorage,其余的工作就会在内存中完成。

本地存储与Cookie

localStorage更好的比较是经典的localStoragelocalStoragedocument.cookie的主要目的是在浏览器刷新期间保持价值。

我在codsandbox.io上放了一个例子

  • localStoragelocalStorage快两个数量级。
  • localStorage存储比localStorage快一个数量级(无关,但添加以供参考)。

localStorage是迄今为止在浏览器刷新期间保留值的最快机制。

localstoragevcookies

请注意,我已经预编译了cookie regex getter,以使cookie尽可能快,并使用浏览器性能API进行准确的测量。 所有测试都会执行一组唯一的密钥,然后再获取相同的密钥。

cchamberlain answered 2020-07-12T23:18:41Z
translate from https://stackoverflow.com:/questions/8074218/speed-cost-of-localstorage