使用Javascript在localStorage中查找值的速度有多快?本地存儲的速度/成本
有沒有人有任何性能測試的鏈接,指出是否值得在JavaScript數組中緩存數據?或者,瀏覽器是否已經緩存了從localStorage訪問的值?
我特別感興趣的是localStorage的Firefox和Chrome實現。
使用Javascript在localStorage中查找值的速度有多快?本地存儲的速度/成本
有沒有人有任何性能測試的鏈接,指出是否值得在JavaScript數組中緩存數據?或者,瀏覽器是否已經緩存了從localStorage訪問的值?
我特別感興趣的是localStorage的Firefox和Chrome實現。
這是值得的,這是一個jsperf test。
的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
另外,還有restrictions on what can be put in localStorage。因人而異。
快樂編碼。
嘿,我希望它會更快!儘管如此,從服務器獲取數據的速度要快幾個數量級(所以它仍然可以很好地實現其目的)。此外,有趣的是看到10倍以上的不同項目(10到100)使localStorage ***變慢了200倍(!!)*** –
@CamiloMartin是的,我有點驚訝自己,實際上:)希望未來的瀏覽器將提高速度和增長速度,但有這麼多競爭選擇這些天... – 2012-02-24 23:18:51
只是做了一個小基準。我打算做的是經常從localStorage獲取一些數據,我想知道它會阻止。雖然localStorage.getItem是同步操作,但它聽起來可能會令人感到恐懼,但它是什麼?
結果:
「項目發現:0.0007991071428571318ms每次通話」
「項目未找到:每次通話0.0006365004639793477ms」
總之 - 只是用它。它沒有時間。 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`);
我希望它不會是大問題,雖然緩存可能是一個好主意,不管。取決於情況。 –
[性能測試用例](http://jsperf.com/)顯示什麼? (寫一個,我會在幾個瀏覽器上爲你運行它;-) – 2011-11-10 02:13:04
定期在......?如果您一次只檢索一次該值,則不必擔心性能。 –