Quelle taille de fichier JSON un navigateur peut-il gérer
L’essentiel : Il n'y a pas de limite fixe ; la contrainte est le budget mémoire de votre onglet. Un fichier de 20 Mo devient typiquement 60 à 100 Mo une fois parsé, et le DOM surligné peut encore doubler cela.

L'essentiel : il n'y a pas de plafond fixe — estimez à partir de la mémoire, car l'objet parsé coûte généralement 3 à 5 fois la taille du texte et le DOM surligné le double encore ; au-delà de 50 Mo, ou quand le nombre d'enregistrements de premier niveau atteint des centaines de milliers, découpez, diffusez ou passez à une application locale au lieu de forcer dans un onglet.
Où va la mémoire
Un texte JSON de 20 Mo existe trois fois :
- La chaîne brute : 20 Mo
- Le graphe d'objets parsé : généralement 60 à 100 Mo (chaînes dupliquées, en-têtes d'objets, tables de hachage)
- Le DOM surligné : un nœud par jeton, facilement 2 fois plus encore
Les tampons d'éditeur, piles d'annulation et caches de coloration syntaxique s'ajoutent. Un « fichier de 20 Mo » peut dépasser 200 Mo résidents.
Règles empiriques
| Taille | Bureau | Mobile |
|---|---|---|
| < 5 Mo | Fluide | Fluide |
| 5 à 20 Mo | Léger retard, 1 à 3 s pour formater | Retard notable, peut figer |
| 20 à 50 Mo | Utilisable mais lourd ; désactiver le surlignage | Plantage probable |
| > 50 Mo | Non recommandé | Inutilisable |
Ces valeurs varient avec l'appareil, la version du navigateur et si le surlignage est actif. Utilisez-les pour les ordres de grandeur, pas comme garanties.
Pourquoi plus de RAM ne corrige pas cela
Les onglets ont une limite dure, et la dépasser signifie un plantage immédiat plutôt qu'une dégradation gracieuse. Le mobile est encore plus strict, récupérant dans les basses centaines de mégaoctets.
Travailler avec de grands fichiers
Découpez.
head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json
Diffusez. stream-json, ijson, jq --stream traitent enregistrement par enregistrement avec une mémoire indépendante de la taille du fichier.
Utilisez une application locale. Pas de limites d'onglet, toute la mémoire de la machine : téléchargement de bureau.
Changez le format. Les journaux et flux d'événements devraient être du NDJSON dès le départ — un enregistrement par ligne, diffusable par construction.
Demandez au backend de rogner. Si l'interface a besoin de trois champs, en envoyer trois cents est un problème de conception d'API, pas une limitation du navigateur.
Dimensionner votre fichier
ls -lh data.json
jq 'length' data.json
Si length est dans les centaines de milliers, la pagination ou le flux est la réponse indépendamment du nombre d'octets.
FAQ
Comment savoir dans quelle tranche de taille se situe mon fichier ?
Vérifiez les octets avec ls -lh et le nombre d'enregistrements de premier niveau avec jq 'length'. Les fichiers de quelques mégaoctets sont fluides partout, 20 à 50 Mo fonctionnent sur bureau mais saccadent, et au-delà de 50 Mo vous devriez diffuser ou utiliser un outil en ligne de commande.
Que faire d'un fichier de plus de 50 Mo ?
Découpez-le avec head -c, ou diffusez-le avec jq, stream-json ou jq --stream pour que la mémoire reste indépendante de la taille du fichier. Si vous devez inspecter tout le document, utilisez l'application de bureau, qui n'est pas liée au budget mémoire d'un onglet. Les journaux et flux d'événements appartiennent de toute façon à NDJSON.