¿Qué tamaño de archivo JSON puede manejar un navegador?
En resumen: No hay un límite fijo; la restricción es el presupuesto de memoria de tu pestaña. Un archivo de 20 MB suele convertirse en 60–100 MB al analizarlo, y el DOM resaltado puede duplicarlo de nuevo.

En resumen: no hay un techo fijo: calcula a partir de la memoria, ya que el objeto analizado suele costar 3–5 veces el tamaño del texto y el DOM resaltado lo duplica de nuevo; por encima de 50 MB, o cuando el número de registros de nivel superior llega a cientos de miles, trocea, haz streaming o cambia a una aplicación local en lugar de forzarlo en una pestaña.
Dónde va la memoria
Un texto JSON de 20 MB existe tres veces:
- La cadena sin procesar: 20 MB
- El grafo de objetos analizado: normalmente 60–100 MB (cadenas duplicadas, cabeceras de objeto, tablas hash)
- El DOM resaltado: un nodo por token, fácilmente otro 2x
Los búferes del editor, las pilas de deshacer y las cachés de resaltado de sintaxis son extras. Un «archivo de 20 MB» puede superar los 200 MB residentes.
Reglas generales
| Tamaño | Escritorio | Móvil |
|---|---|---|
| < 5MB | Fluido | Fluido |
| 5–20MB | Ligero retraso, 1–3 s para formatear | Retraso notable, puede congelarse |
| 20–50MB | Viable pero pesado; desactiva el resaltado | Probablemente se bloquee |
| > 50MB | No recomendado | No utilizable |
Estos valores cambian según el dispositivo, la versión del navegador y si el resaltado está activado. Úsalos como órdenes de magnitud, no como garantías.
Por qué más RAM no lo arregla
Las pestañas tienen un límite estricto, y superarlo significa un bloqueo inmediato en lugar de una degradación gradual. Móvil es aún más estricto, y recupera memoria en el rango de los cientos bajos de megabytes.
Trabajar con archivos grandes
Trocea el archivo.
head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json
Haz streaming. stream-json, ijson, jq --stream procesan registro a registro con memoria independiente del tamaño del archivo.
Usa una aplicación local. Sin límites de pestaña, toda la memoria de la máquina: descarga de escritorio.
Cambia el formato. Los logs y flujos de eventos deberían ser NDJSON desde el principio: un registro por línea, con streaming por construcción.
Pide al backend que recorte. Si la interfaz necesita tres campos, enviar trescientos es un problema de diseño de API, no una limitación del navegador.
Calcular el tamaño de tu archivo
ls -lh data.json
jq 'length' data.json
Si length está en los cientos de miles, la paginación o el streaming son la respuesta independientemente del tamaño en bytes.
FAQ
¿Cómo sé en qué banda de tamaño cae mi archivo?
Comprueba los bytes con ls -lh y el número de registros de nivel superior con jq 'length'. Los archivos por debajo de unos pocos megabytes van fluidos en todas partes, 20–50 MB funciona en escritorio pero da tirones, y por encima de 50 MB deberías hacer streaming o usar una herramienta de línea de comandos.
¿Qué debería hacer con un archivo de más de 50 MB?
Trocea el archivo con head -c, o haz streaming con jq, stream-json o jq --stream para que la memoria se mantenga independiente del tamaño del archivo. Si necesitas inspeccionar el documento completo, usa la aplicación de escritorio, que no está limitada por el presupuesto de memoria de una pestaña. Los logs y flujos de eventos pertenecen a NDJSON de todos modos.