Esta es la forma que tengo cosas de configuración:¿Cuál es la mejor manera de liberar la memoria del navegador cuando se trabaja con grandes arreglos en javascript?
- container.html
- database1.js (contiene gran variedad llamada database1)
- database2.js (contiene gran variedad llamada database2)
He aquí una muestra de la matriz (acortado de 6000 + filas a 2):
var database1=[[
"2010-01-03 07:45","2010-01-03 11:00","534","A","","","","","Installed washing machine","0","1","1","Indeed","",""],[
"2010-03-20 15:00","2010-03-20 16:00","571","F","","","","","Installed oven","0","5","1","Indeed","",""],[
etc,etc,etc...]];
Cuando anexo database1.js a la cabecera del contenedor, la memoria utilizada para IE en Windows salta de 7,7MB a 21,9MB. Esto está bien, ahora puedo recorrer el conjunto llamado base de datos1 (la primera fila y la columna están en la base de datos 1 [0] [0]).
El problema es que tengo que volver a anexar el archivo de la base de datos de vez en cuando y al hacerlo, el uso de la memoria aumenta (pensé que la matriz de la base de datos se sobrescribiría).
Así que la primera re-append empuja el uso de memoria en el IE hasta 30,4MB pero luego sigue aumentando en cada re-append: 30,4MB> 33,9MB> 39,5MB> 42,1MB etc.
Para evitar que esto ocurra, borro cada elemento de la matriz antes de volver a agregar el archivo de la base de datos.
for (var i=0, il=database1.length; i<il; i++){
delete database1[i];
}
//append database1.js to head code here
Esto ayuda a. El uso de la memoria no disminuye a los 7,7 MB iniciales, pero sin embargo disminuye de 21,9 MB a 14,1 MB. La próxima reaplicación aumenta la memoria a 25,9 MB (borrado con el ciclo: 18,8 MB). La próxima reanexión aumenta la memoria a 29,3 MB (borrado con el bucle: 24,5 MB).
Me alegro de que el uso de la memoria no esté aumentando tan rápido, pero quizás esto se pueda optimizar aún más. Lamentablemente, volver a cargar la página HTML no es una opción.
(su cuenta de stackoverflow se debe arreglar ahora) –