Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Excessive memory consumption when handling large bundles without source maps

Aperta Adatta ai principianti
#344 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
javascript, node.js
Ambito
devtools

Direzione di ricerca

Inizia in source-map-support.js con retrieveFile() e retrieveSourceMapURL(), quindi segui il percorso della cache di mapSourcePosition() descritto nell’issue. Riproduci la ricerca con un bundle di grandi dimensioni che non ha una source map e verifica che il suo contenuto non venga mantenuto in fileContentsCache dopo la ricerca non riuscita.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Environment:

  • Node.js with source-map-support
  • several large JavaScript bundles (5–7 MB each)
  • no source maps available for the bundles

Problem:

When an error is thrown in a large bundle, the source-map-support library unnecessarily retains the full file contents in memory. The file is loaded solely to check for a source map, but its contents are cached even after this one‑time operation. This results in excessive memory usage, especially problematic with multiple large bundles.

Steps to reproduce:

  1. An error is thrown in a bundle (e.g., index.js)
  2. Error.prepareStackTrace() is called
  3. The call chain proceeds as follows: wrapCallSite() → mapSourcePosition() → retrieveSourceMap("index.js") → retrieveSourceMapURL("index.js") → retrieveFile("index.js")
  4. The default retrieveFile handler loads the entire index.js file from disk and stores it in the fileContentsCache (source)
  5. retrieveSourceMapURL() fails to find a source map for the file
  6. mapSourcePosition() stores an empty source map in its internal cache (source)
  7. The full contents of index.js remain in the fileContentsCache indefinitely, consuming memory

Expected behavior:

File contents should be used only once to check for the presence of a source map, and then either not cached at all or discarded immediately after the check. There is no need to retain large bundle files in memory after this operation.

Actual behavior:

Large bundle files (5–7 MB) are retained in the fileContentsCache after the first error, leading to unnecessary increase in memory footprint.

Proposed solution:

Avoid caching when no source map is found: skip storing file contents in fileContentsCache if the source map lookup fails.

Lingua principale
JavaScript
Stelle
2.2k
Fork
221
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di evanw/node-source-map-support

Tutte le issue di evanw/node-source-map-support

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.