Test de Velocidad de Memoria
Mide la velocidad de tu RAM con pruebas de arrays, objetos, strings y arrays tipados. Resultados claros de rendimiento y eficiencia.
| Nombre de Prueba | Operaciones/s | Tiempo | Estado |
|---|---|---|---|
| Operaciones de Array Crear, leer, escribir arrays (10K elementos) | - | - | Pendiente |
| Asignación de Objetos Crear y modificar 1,000 objetos | - | - | Pendiente |
| Manipulación de Strings Concatenación, división, reemplazo | - | - | Pendiente |
| Arrays Tipados Operaciones Int32, Float64, Uint8 | - | - | Pendiente |
| Asignación de Memoria Asignación y liberación de memoria grande | - | - | Pendiente |
Test de Velocidad de Memoria - Prueba el Rendimiento de tu RAM
Una herramienta completa de test de velocidad de memoria online que mide el rendimiento de RAM a través de varias operaciones. Ejecuta pruebas para operaciones de arrays, asignación de objetos, manipulación de strings, arrays tipados y asignación de memoria para evaluar la velocidad y eficiencia de memoria de tu sistema.
¿Cómo funciona el test de velocidad de memoria?
El test mide el rendimiento de RAM ejecutando varias operaciones:
1. Operaciones de Array: Prueba velocidad lectura/escritura con arrays estándar (10.000 elementos)
2. Asignación de Objetos: Mide velocidad de creación y modificación (1.000 objetos)
3. Manipulación de Strings: Evalúa rendimiento de concatenación, split y replace
4. Arrays Tipados: Prueba manejo binario con buffers Int32, Float64 y Uint8
5. Asignación de Memoria: Mide eficiencia de asignación grande
Cada prueba se ejecuta durante una duración establecida y calcula operaciones por segundo. Mayores ops/s indican mejor rendimiento. La herramienta usa performance.now() para precisión sub-milisegundo.
¿Qué factores afectan la velocidad de memoria?
Varios factores influyen en los resultados:
- Cantidad de RAM: Más RAM permite working sets mayores sin swap
- Velocidad de RAM: Mayor MHz (3200, 4800, 6400 MT/s) = acceso más rápido
- Tipo de RAM: DDR5 > DDR4 > DDR3 (ancho de banda se duplica cada generación)
- Caché de CPU: Tamaños L1/L2/L3 afectan patrones de acceso
- Canales: Dual/quad channel duplican o cuadruplican el ancho de banda
- Limitaciones del Navegador: Tope de heap V8/SpiderMonkey (típicamente 2-4 GB)
- Procesos en Segundo Plano: Otras apps consumiendo RAM disparan swap
- Sistema Operativo: Eficiencia de gestión de memoria (Linux > Windows en asignaciones grandes)
Para resultados precisos, cierra aplicaciones en segundo plano.
¿Qué es una buena puntuación de velocidad de memoria?
Entendiendo tus resultados:
- Mayores Operaciones/Segundo = Mejor Rendimiento
- Menor Tiempo = Finalización Más Rápida
Puntuaciones típicas por nivel:
- Desktop High-End (32GB+ DDR5-6400): 50-100+ ops/s
- Desktop Mid-Range (16GB DDR4-3200): 30-50 ops/s
- Desktop Económico (8GB DDR4-2400): 15-30 ops/s
- Portátiles Modernos: 10-40 ops/s (varía mucho)
- Móvil/Tabletas: 5-15 ops/s
Nota: Las puntuaciones varían significativamente por navegador y optimización del motor JavaScript (V8 vs SpiderMonkey vs JavaScriptCore).
¿Por qué testear memoria en el navegador?
Los tests de memoria basados en navegador ofrecen ventajas:
- Sin instalación: Testea inmediatamente sin descargas
- Multi-plataforma: Funciona en cualquier SO con navegador
- Seguro: Corre en sandbox, no daña el sistema
- Diagnóstico rápido: Identifica cuellos de botella rápido
- Rendimiento Web: Ve cómo se comportarán las web apps
Aunque menos exhaustivo que herramientas nativas como MemTest86 o AIDA64, los tests de navegador dan información valiosa sobre rendimiento de memoria JavaScript, importante para apps web, Node.js y cargas basadas en navegador.
¿Qué es el heap de JavaScript y por qué limita las pruebas?
El heap de JavaScript es la región de memoria dedicada donde el motor JS (V8, SpiderMonkey, JavaScriptCore) asigna objetos, arrays y strings. Los navegadores limitan el heap para evitar páginas descontroladas: Chrome desktop ~4 GB, Firefox ~2 GB, Chrome móvil ~256-512 MB, Safari iOS ~384 MB. Cuando un test pide más memoria que el límite, el motor lanza RangeError o dispara recolección de basura que distorsiona los tiempos. window.performance.memory (solo Chromium) reporta jsHeapSizeLimit, totalJSHeapSize y usedJSHeapSize para ver lo cerca que estás del tope.
¿Por qué los typed arrays son más rápidos que los arrays normales?
Los arrays normales de JavaScript guardan valores empaquetados: cada elemento contiene un puntero más una etiqueta float64, incluso para enteros. Los typed arrays (Int32Array, Float64Array, Uint8Array) almacenan datos binarios crudos en un ArrayBuffer contiguo sin empaquetado. Leer el elemento i lee directamente los bytes [i*4 .. i*4+3], igual que en C. Esto omite recolección de basura, evita transiciones de clase oculta y permite al JIT emitir instrucciones SIMD. Resultado: los typed arrays son típicamente 2-5x más rápidos en cargas numéricas y usan 4-8x menos memoria.

¿Qué significa realmente el número de heap usado?
window.performance.memory.usedJSHeapSize reporta cuántos bytes considera alcanzables el recolector de basura V8 a través de los objetos raíz de la página. Excluye nodos DOM separados pendientes de barrido, buffers nativos (los stores de ArrayBuffer viven fuera del heap JS) y datos de caché inline. Los números saltan cuando corre el GC (cada 50-200ms bajo carga) y el valor se redondea al 100 KB más cercano por privacidad (mitiga ataques de timing tipo Spectre). Firefox y Safari no exponen esta API por la misma razón.
¿Por qué el test se ralentiza en ejecuciones sucesivas?
Tres efectos se combinan:
1. Acumulación de GC: cada ejecución deja objetos para el GC; la segunda paga por limpiar la primera.
2. Fragmentación del heap: ciclos repetidos de asignación/liberación crean huecos que el asignador debe escanear, subiendo latencia.
3. Throttling térmico: actividad sostenida CPU+RAM por 30+ segundos eleva la temperatura del silicio sobre TJMax (~100°C), momento en que el CPU/controlador de memoria baja frecuencia 10-30 % para evitar daño.
Para una línea base estable, pulsa Restablecer Resultados, espera 10 segundos para GC y enfriamiento, luego repite.
¿Qué navegadores exponen performance.memory y navigator.deviceMemory?
Solo los navegadores basados en Chromium (Chrome, Edge, Opera, Brave) las exponen, y ambas son no estándar y están obsoletas:
- performance.memory (jsHeapSizeLimit / totalJSHeapSize / usedJSHeapSize): solo Chromium. Firefox y Safari no la implementan deliberadamente para bloquear ataques de timing tipo Spectre. Los valores están cuantizados (redondeados a ~100 KB).
- navigator.deviceMemory: solo Chromium y cuantizada por privacidad a uno de {0,25, 0,5, 1, 2, 4, 8} GB. Una máquina de 16 GB o 32 GB reporta ambas «8 GB», así que es una pista aproximada del navegador, NO tu RAM instalada.
En Firefox y Safari la tarjeta de Información de Memoria muestra «No compatible» en estos campos: es lo esperado, no un fallo. El benchmark (ops/s de array, objeto, string, typed array y asignación) usa solo performance.now() y corre igual en todos los navegadores.
¿Es seguro y privado? ¿Necesita permisos?
Sí. El benchmark corre 100% del lado del cliente en tu pestaña usando JavaScript común y performance.now(). No se sube nada, no hay cuenta, no hay solicitud de permiso ni requisito de contexto seguro (HTTPS): funciona sin conexión. La exportación opcional JSON/CSV se genera localmente en tu navegador y se guarda directo en tu dispositivo; nunca se envía a ningún servidor.
¿Cómo interpreto los resultados para aprobar/rechazar en QA?
Usa las estadísticas de varias ejecuciones, no un único número:
1. Pon Iteraciones en 5 o 10 para que cada prueba dé un conjunto de muestras con media ± desv. típ., mediana, mín y máx.
2. Juzga la estabilidad con el CV (coeficiente de variación = desv./media): verde por debajo de 5 % = repetible; amarillo 5-15 % = límite (carga de fondo o throttling leve); rojo por encima de 15 % = inestable, probablemente throttling térmico o presión de GC — repite en una máquina fría e inactiva antes de certificar.
3. Compara la mediana (robusta ante valores atípicos) en lugar de la media para aprobar/rechazar frente a una línea base conocida.
4. El Índice Compuesto es una media geométrica adimensional de las cinco medianas: úsalo para clasificar dispositivos; usa las medianas por prueba para localizar una debilidad.
5. Exporta JSON/CSV para adjuntar la sesión completa (marca de tiempo, user agent, muestras, estadísticas, índice) a un ticket o compararla con un archivo de referencia.
Características Principales
- 5 pruebas completas de velocidad de memoria
- Medición de operaciones por segundo en tiempo real
- Prueba de rendimiento de operaciones de array
- Benchmarks de asignación y manipulación de objetos
- Pruebas de velocidad de manipulación de strings
- Evaluación de rendimiento de arrays tipados
- Prueba de asignación de memoria grande
- Muestreo de varias ejecuciones (1/3/5/10 iteraciones)
- Mín/máx/media/mediana y desviación típica por prueba
- Insignia de estabilidad de varianza (CV) entre ejecuciones
- Índice compuesto por media geométrica (sin media aritmética engañosa)
- Exportación JSON y CSV del informe completo de la sesión
- Visualización de información de memoria
- 100% del lado del cliente - sin datos subidos
- Soporte para móvil y escritorio
- Compatible con modo oscuro
