ejemplos - localstorage javascript json
Velocidad/costo de almacenamiento local (2)
Acaba de hacer un pequeño punto de referencia. Lo que planeo hacer es obtener algunos datos de localStorage con bastante frecuencia y me pregunto si se bloquearán. Si bien la operación localStorage.getItem está sincronizada, puede sonar atemorizante, ¿verdad?
- Primera prueba para llamar 1 millón de veces a localStorage para obtener un elemento que existe.
- 2da prueba para llamar 1 millón de veces localStorage para obtener un artículo que NO existe.
Resultados:
"Artículo encontrado: 0.0007991071428571318ms por llamada"
"Artículo no encontrado: 0.0006365004639793477ms por llamada"
En resumen - solo úsalo. No lleva tiempo. 0.0007 de 1 milisegundo.
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`);
¿Qué tan rápido está buscando un valor en localStorage con Javascript?
¿Alguien tiene enlaces a alguna prueba de rendimiento que indique si vale la pena almacenar los datos en un objeto JavaScript o no? ¿O el navegador ya almacena en caché los valores a los que se accede desde localStorage?
Estoy particularmente interesado en las implementaciones de Firefox y Chrome de localStorage.
Para lo que vale, aquí hay una prueba jsperf .
El uso de referencia de localStorage
es significativamente más lento que el acceso a las propiedades de un objeto regular tanto en FF7 como en IE9. Por supuesto, esto es solo un micro-punto de referencia, y no necesariamente refleja el uso o el rendimiento en el mundo real ...
Muestra extraída de mi carrera de FF 7 para mostrar lo que significa "significativamente más lento", en operaciones / segundo:
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
Además, hay restricciones sobre lo que se puede poner en localStorage . YMMV.
Feliz codificacion