Blog

Los editores JSON online sufren con 20MB de Base64: Resultados del Benchmark

Publicado el 23 de abril de 2026 · 6 min de lectura

Una respuesta de API con una cadena Base64 de 20 MB puede exigir mucho trabajo de análisis, resaltado y maquetación. El impacto depende del editor, navegador, dispositivo y datos; por eso comparamos tres herramientas concretas.

¿Por qué ocurre esto? ¿Es falta de potencia de hardware o un defecto fundamental en cómo los navegadores procesan texto? Decidimos ejecutar un benchmark transparente en un equipo de escritorio de gama alta para descubrir exactamente por qué las herramientas de formateo más populares se vienen abajo bajo presión, y cómo solucionarlo.

El Benchmark de 20MB: Editores JSON online a prueba

Para eliminar las limitaciones de hardware como excusa, ejecutamos nuestro benchmark en una máquina de desarrollo de gama alta:

  • CPU: Intel Core i7-14700F
  • Memoria: 32GB RAM

Un script de Playwright pegó payloads de 1 a 20 MB en CodeBeautify, JSONFormatter y ViewJSON. Puedes reproducir el script de GitHub Gist. La tabla muestra la mediana de tres ejecuciones de esta configuración.

Descarga el CSV original. El runner registró tiempos y errores, pero no las versiones del sistema operativo, Chromium, Playwright, red ni compilación de los sitios. Es una captura fechada, no una clasificación permanente.

Tamaño CodeBeautify JSONFormatter ViewJSON
1MB 1.1s(F: 1.1s, M: 1.0s) 1.2s(F: 0.9s, M: 1.0s) 0.7s(F: 0.6s, M: 0.6s)
5MB 2.5s(F: 4.1s, M: 3.1s) 4.3s(F: 3.0s, M: 3.8s) 0.9s(F: 0.7s, M: 0.7s)
10MB 4.3s(F: 7.8s, M: 6.4s) 5.9s(F: 5.2s, M: 6.9s) 1.1s(F: 0.8s, M: 0.7s)
20MB 8.7s(F: 16.0s, M: 13.1s) 12.6s(F: 15.4s, M: 11.6s) 1.6s(F: 1.0s, M: 0.8s)

* F = Tiempo de Format, M = Tiempo de Minify. Los datos representan la mediana de 3 ejecuciones. Las cifras en color primario indican el tiempo de carga. Tiempos redondeados a un decimal.

Gráfico de barras de 20MB: CodeBeautify 8.7s, JSONFormatter 12.6s, ViewJSON 1.6s.
Resumen visual del benchmark de 20MB (menos es mejor).

¿Por qué los editores JSON online se ralentizan con cadenas Base64 grandes?

La enorme brecha de rendimiento evidencia una limitación severa en la forma en que las aplicaciones web tradicionales manejan el resaltado de código. Cuando un editor JSON online se ralentiza con datos Base64 grandes, entran en juego dos cuellos de botella principales:

1. El cuello de botella de la CPU en un solo hilo

Muchas operaciones del editor aún se ejecutan en el hilo principal, por lo que analizar o tokenizar un documento grande puede retrasar la interacción. Los workers pueden mover parte del trabajo, pero no todos los editores los usan; el perfil de CPU debe medirse.

2. El cuello de botella del renderizado de líneas gigantes

Al procesar un archivo JSON, el resaltador de sintaxis envuelve toda la cadena Base64 en un único nodo <span class="string">. El verdadero problema es que ese nodo contiene aproximadamente 27 millones de caracteres, todos compactados en una sola línea continua sin saltos de línea. El motor del editor debe medir el ancho de cada carácter, calcular los puntos de ajuste de línea y posicionar el cursor para esta "mega-línea". Con una cadena de esta magnitud, esos cálculos de maquetación provocan un consumo de memoria catastrófico que bloquea por completo el hilo principal del navegador.

La solución de ViewJSON: Sustitución de medios y portapapeles sin pérdida

Los editores tradicionales se congelan porque intentan renderizar decenas de millones de caracteres para que un humano los lea. Pero nos dimos cuenta de una verdad fundamental: nadie lee 20MB de código Base64 ilegible; lo que quieres ver es el contenido multimedia que hay detrás. En lugar de forzar los límites del navegador, ViewJSON implementa una solución arquitectónica orientada a la experiencia de usuario:

  • Sustitución de medios (no simple truncamiento): Cuando ViewJSON detecta una cadena Base64, decodifica los bytes mágicos y reemplaza por completo el bloque de código ilegible por una previsualización real del contenido multimedia (como una imagen). Si se desactiva la previsualización, trunca la cadena de forma inteligente. En ambos casos, al impedir que millones de caracteres entren en el búfer de texto del editor, se libera por completo la carga del motor y del hilo de renderizado.
  • Recuperación del portapapeles sin pérdida: Ocultar el texto original suele generar un problema grave: al copiar el JSON, los datos quedan incompletos. ViewJSON lo resuelve con un gestor de portapapeles personalizado. Ya sea que estés viendo una previsualización de imagen o una cadena truncada, al hacer clic en "Copiar", el editor restaura silenciosamente el payload Base64 original completo en segundo plano, garantizando que tus datos copiados queden 100% intactos.

En esta configuración, ViewJSON cargó el caso de 20 MB en unos 1,6 segundos. Otros payloads, navegadores o dispositivos pueden dar resultados distintos.

Artículo relacionado

Cómo depurar imágenes Base64 en respuestas JSON de API →

Deja de esperar con un editor JSON lento

Prueba una respuesta JSON grande con tu propio navegador y payload. Los documentos grandes siguen consumiendo memoria; no dependas de un único tiempo sin verificarlo.

Abrir ViewJSON →