2010-05-29 18 views
42

¿Existe una cantidad máxima de datos que una aplicación de JavaScript puede almacenar?Límite de memoria de JavaScript

Supongo que esto es manejado por el navegador y cada uno tiene su limitación?

Si no hay un límite, ¿se creará un archivo de página? Si es así, ¿no sería inseguro?

+2

Existen algunas limitaciones, aunque estas dependen del navegador. Por ejemplo, Firefox tiene límites en el espacio de la pila, así como un consumo excesivo de CPU. – Rushyo

Respuesta

33

AFAIK, no hay límite superior, su secuencia de comandos puede utilizar básicamente la memoria hasta que el sistema se quede sin memoria (incluido el intercambio). Sin límite máximo no significa que tiene que comerlo todo, a los usuarios puede no gustarles.

+0

Gracias, solo me preguntaba, no estoy planeando comerlo todo. Aunque puedo imaginar algunos escenarios donde las máquinas más antiguas tendrían algunos problemas (animaciones jquery, clasificación de tablas, etc.) –

4

No hay limitaciones de memoria para un programa de Javascript. Su secuencia de comandos puede acaparar toda la RAM en su máquina. Sin embargo, no se recomienda utilizar toda la memoria en la máquina de los usuarios. Si está tratando con una gran cantidad de datos, le sugiero que revise el almacenamiento en caché.

+2

Una secuencia de comandos no puede encerrar toda la RAM en una máquina. Todavía estará ligado al espacio de proceso subyacente. Entonces, en un navegador de 32 bits, eso es solo 4 GB de memoria direccionable. –

+0

Creo que es 2Gb en realidad, bueno en algunos casos al menos, así que suponga 2GB y funcionará bien en todas partes – GameDeveloper

15

Busqué en Google "límites de memoria navegador web" y encontró un hilo con una muy buena respuesta: https://groups.google.com/d/topic/comp.lang.javascript/332YSnPsw_w/discussion

También puede buscar comp.lang.javascript para javascript memory limit.

Ver también este post desbordamiento de pila: Maximum size of an Array in Javascript, lo que sugiere que puede almacenar hasta 2 -1 = 4294967295 = 4.29 mil millones de elementos

(yo estaba tratando de encontrar una buena respuesta, y el "no "La respuesta proporcionada aquí fue simplemente una tontería para mí. No puedo encontrarme con un problema de producción para un proyecto multimillonario y decirle a la gerencia:" Bueno, asumí que no hay un límite superior y que todo estaría bien ". Intente hacer una prueba de concepto, por ejemplo, cargando muchos controles de combobox en su marco de trabajo de interfaz de usuario de JavaScript, etc. Puede descubrir que su infraestructura tiene alguna degradación del rendimiento.)

+0

Chrome advierte que el sitio al que se ha vinculado tiene Malware. Tal vez tome la información del sitio y copie aquí directamente en lugar de proporcionar un enlace. – jasop

+0

Gracias. Reparado, agregó un poco más de información. De hecho, quiero escribir un blog sobre esto en más detalle en algún momento. Pero la respuesta del Dr. Stockton en el hilo vinculado es lo que estás buscando esencialmente. –

2

Firefox admite la opción "javascript.options.mem.max" y si realiza una búsqueda puede encontrar discusiones sobre valores razonables que las personas han encontrado factibles.

No estoy seguro de cuántas personas pueden molestarse en entrar y configurarlo, pero por mi parte lo configuro en 128000 (que es 128M).

Cuestiones relacionadas