ZonoTools

Test de mémoire

Monitors navigateur JavaScript heap via performance.memory on Chromium browsers, and optionally allocates typed-array chunks to watch growth toward the tab limit. Not a hardware RAM test — runs localement, nothing uploaded.

Firefox / Safari: performance.memory is not exposed. Live heap stats show —; allocation is tracked by this outil only (safety cap 300 MB).

Live heap stats

Used heap (MB)

Total heap (MB)

Heap limit (MB)

0

Allocated by test

Used / limit (%)

Stress allocation

Safety: Auto-stops if used heap exceeds 85% of the navigateur heap limit, or after 500 chunks. Without performance.memory, stops at 300 MB self-allocated. Close other tabs if you need headroom.

Heap growth graph

Green: used heap · Yellow: total heap · Red dashed: navigateur limit (Chromium). Updates every 500 ms.

Mode d'emploi

  1. Ouvrez dans Chrome ou Edge pour les statistiques complètes du tas (performance.memory). Firefox/Safari affiche le mode d'allocation uniquement.
  2. Lisez les Statistiques du tas en direct: elles s'actualisent automatiquement toutes les 500 ms.
  3. Définissez la Taille du morceau (Mo) et l'Intervalle (ms), puis cliquez sur Commencer à allouer pour accentuer le tas d'onglets.
  4. Regardez le graphique de croissance du tas: vert utilisé, total jaune, limite en pointillés rouges.
  5. Cliquez sur Arrêter à tout moment ou laissez l'outil s'arrêter automatiquement à 85 % de la limite/500 morceaux/300 Mo (sans API).
  6. Cliquez sur Release & GC pour abandonner les allocations de test; Le tas utilisé devrait tomber en quelques secondes pendant l'exécution du GC.
  7. Utilisez Copier les résultats pour les tickets ou les comparaisons avant/après.

FAQ

Pourquoi la limite de tas est-elle différente de la RAM de mon système?

La limite concerne l'onglet du navigateur (isolat JavaScript), et non la RAM totale de la machine. Desktop Chrome plafonne souvent à environ 4 Go par onglet, quels que soient 16 Go ou 128 Go installés, pour éviter qu'une page n'occupe toute la machine.

Est-ce un remplacement pour MemTest86?

Non. Cela mesure uniquement le comportement du segment de mémoire du navigateur. JavaScript ne peut pas tester le matériel DIMM. Utilisez la clé USB amorçable MemTest86 pour la stabilité physique de la RAM.

Pourquoi Firefox et Safari n'affichent-ils pas les statistiques du tas?

performance.memory est une API Chromium non standard. D'autres navigateurs le cachent contre les empreintes digitales. Cet outil ne suit que ce qu'il s'alloue, plafonné à 300 Mo.

Que font Release & GC?

Il efface les références à tous les morceaux de test afin qu'ils deviennent éligibles pour le garbage collection. Le tas utilisé disparaît généralement en quelques secondes sans rechargement de la page.

Quand l’allocation s’arrête-t-elle automatiquement?

Lorsqu'il est utilisé, le tas dépasse 85 % de jsHeapSizeLimit (Chromium), après 500 morceaux, ou à 300 Mo auto-alloués lorsque performance.memory n'est pas disponible.

Les données quittent-elles mon navigateur?

Non. Toutes les opérations de surveillance et d'allocation se déroulent localement dans cet onglet.

Introduction

Memory Test surveille la quantité de Tas JavaScript utilisé par l'onglet de votre navigateur — et éventuellement alloue de la mémoire par morceaux pour voir à quelle distance vous vous rapprochez de la limite stricte de l'onglet avant que le navigateur n'arrête la page.

Sur Chrome et Edge, l'outil litperformance.memorytoutes les 500 ms:

  • usedJSHeapSizeTas utilisé (Mo)
  • totalJSHeapSizeTas total (Mo) (réservé à cet onglet)
  • jsHeapSizeLimitLimite de tas (Mo) (plafond avant crash/MOO)

Sur Firefox et Safari, ces champs sont masqués. L'outil exécute toujours l'allocation de contrainte, mais suit uniquement Allocation par test (Mo) avec un plafond de sécurité de 300 Mo.

Il ne s'agit pas de tests de RAM système, pas de MemTest86 et pas de diagnostics VRAM.


Comment fonctionne le test

1. Sondage en direct (500 ms)

Un minuteur en arrière-plan appellereadPerformanceMemory()et ajoute un point au graphique de croissance du tas (jusqu'à ~60 secondes d'historique à 500 ms/échantillon).

2. Répartition des contraintes

Commencer à allouer ajoute à plusieurs reprises un bloc Float32Array (10 Mo par défaut, configurable de 1 à 100 Mo) à votre intervalle (50 à 5 000 ms).

Chaque morceau touche le premier et le dernier élément afin que l'allocateur ne puisse pas supprimer les réservations vides.

3. Arrêt automatique de sécurité

Condition When
85 % de la limite du tas used / jsHeapSizeLimitsur Chrome
500 morceaux Quel que soit le navigateur
300 Mo auto-attribués Lorsqueperformance.memoryest manquant

4. Sortie et CG

Release & GC efface le tableau de fragments interne. La collecte des déchets est programmée par le navigateur: le tas peut chuter en 1 à 5 secondes. Lewindow.gc()facultatif ne s'exécute que s'il est exposé (certaines versions de développement).


Comprendre chaque sortie

Tas utilisé (Mo)

Qu'est-ce que c'est:performance.memory.usedJSHeapSize— mémoire actuellement détenue par les objets JS dans cet onglet.

Comment le lire: Augmente pendant l'allocation; devrait tomber après Release & GC. Une montée régulière sans relâchement suggère une fuite dans cet onglet ou dans un autre onglet d'application ouvert.


Tas total (Mo)

Qu'est-ce que c'est:totalJSHeapSize— mémoire du moteur réservé à l'isolat (≥ utilisé).

Comment le lire: Il progresse souvent par plateaux à mesure que l'allocateur développe des pools. Un écart important entre le total et l'espace utilisé peut entraîner une fragmentation ou un espace réservé mais inutilisé.


Limite de tas (Mo)

Qu'est-ce que c'est:jsHeapSizeLimit— maximum imposé par le navigateur pour le tas JS de cet onglet.

Valeurs typiques: ~ 4 Go sur Chrome de bureau 64 bits; beaucoup plus faible sur mobile (classe de 256 à 512 Mo).

Non mesuré: RAM physique installée, mémoire libre du système d'exploitation ou VRAM GPU.


Alloué par test (Mo)

Qu'est-ce que c'est:chunk count × chunk size MBconservé dans les références par cet outil uniquement.

Comment le lire: Sur Chromium, comparez avec l'augmentation du Tas utilisé – ils devraient être en corrélation. Sur Firefox/Safari, il s'agit peut-être de la seule mesure qui augmente en cas de stress.


Utilisé / limite (%)

Qu'est-ce que c'est:usedMb / limitMb × 100lorsque l'API existe.

Comment le lire: Au-dessus de 85 % déclenche l'arrêt automatique. Atteindre 100 % risque de tuer l'onglet ("Aw, Snap!" / OOM).


Graphique de croissance du tas

Line Color Signification
Tas utilisé Green usedJSHeapSizeau fil du temps
Tas total Yellow totalJSHeapSize
Limit Pointillés rouges jsHeapSizeLimitcapuchon horizontal
Mode alloué uniquement Green Mo auto-attribués en l'absence d'API

Ce que mesure ce test

Mesuré Méthode
Tendance d'utilisation du tas Tab JS Sondageperformance.memory
Proximité de l'onglet MOO Utilisé / limite %
Effet de l'attribution délibérée Contrainte de fragment + graphique
Récupération du GC après la sortie Chute de tas utilisée après la sortie

Ce que ce test ne mesure PAS

Non mesuré Why
Erreurs de RAM physique/DIMM Aucun accès matériel depuis JS
Fuite de mémoire dans d'autres onglets Seule l'API du tas de cet onglet
Mémoire d'application native (Electron principale, etc.) Portée de l'onglet du navigateur uniquement
Échange/pagination de disque OS-level
Comparaison précise du tas entre navigateurs API manquante en dehors de Chromium

Safety

  • Utilisez des tailles de blocs modérées sur les machines avec peu de RAM ou de nombreux onglets ouverts.
  • L'arrêt automatique existe pour réduire les plantages des onglets MOO - non garanti dans tous les cas extrêmes.
  • Ne pas utiliser comme test de charge de production sur des machines partagées sans autorisation.
  • Relâchez & GC avant de quitter la page si vous avez alloué beaucoup d'argent.

Cas d'utilisation courants

1. Quelle est la marge disponible pour cet onglet?

Objectif: Voir Utilisé/limite % avant de charger un SPA lourd ou un modèle d'IA local.

Exécuter: Outil ouvert uniquement: lisez les statistiques en direct sans allocation.


2. Fuite de mémoire suspectée dans votre application Web

Objectif: Basez l'onglet de cet outil, puis reproduisez la fuite dans un autre onglet, renvoyez et comparez le Tas utilisé après Release & GC ici.

Remarque: La fuite testée doit se trouver dans l'onglet que vous déboguez – cet outil ne lit pas le tas des autres onglets.


3. Avant/après le déploiement

Objectif: Mêmes paramètres de bloc, pic de note Tas utilisé et temps d'arrêt à 85 % – comparez la version intermédiaire et la version de production dans le même navigateur.


4. Expliquez aux parties prenantes la « limite de 4 Go » par rapport à 32 Go de RAM

Objectif: Capture d'écran Limite de tas (Mo) par rapport à la RAM du système Task Manager.


5. Développeur Firefox/Safari

Objectif: Utiliser uniquement le mode d'allocation: confirmer que la logique de l'application tolère une croissance jusqu'à un plafond de 300 Mo sans recourir à l'API de tas.


Outils associés

Associez ce moniteur de tas d'onglets à d'autres vérifications des outils de périphérique:

  • CPU Stress Test — charge de travail multicœur; voyez si les limites du processeur (et non le tas) sont le goulot d'étranglement.
  • GPU Stress Test — Stress graphique WebGL2 et stabilité FPS.
  • AI GPU Test — Préparation du WebGPU en cas de panne de grands modèles sur appareil; vérifiez d'abord la marge du tas ici.
  • Device InfodeviceMemorygrossier et contexte d'environnement (pas le même que la limite de tas par onglet).