On large projects the IDE uses excessive memory
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- haskell
- Ambito
- developer-experience, performance
Direzione di ricerca
Start by reading the populateVolatileStateSTM and possibly populateVolatileStateSync entry points mentioned in the issue, then profile memory use and command latency on a sufficiently large project. Compare behavior with PureScript 0.15.15; done means the IDE no longer rapidly consumes excessive memory and common commands complete within a few seconds.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
On our project of 9877 source files (including libs), the IDE quickly consumes so much memory that it becomes hard to work with.
On my 32GB Apple M2, it will be using over 20GB of memory in under a minute. It then starts to slow down until common commands, like looking up a type definition can take over 30 seconds.
To Reproduce
This is not simple as our project is not open source but I believe it would be likely to happen on any sufficiently large project.
Expected behavior
The IDE should limit it's memory usage and commands should execute within a few seconds.
Additional context
From tinkering with the IDE, I have found that the forcing of the result in populateVolatileStateSTM and possibly populateVolatileStateSync as well, seems to be responsible. I will make a draft PR to explain in more detail.
I was also wondering if running each command on a new thread and setting allocation limits and/or a timeout for it might help by limiting the resources used by abnormally greedy requests.
PureScript version
0.15.15
- Lingua principale
- Haskell
- Stelle
- 8.9k
- Fork
- 575
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di purescript/purescript
-
type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
purescript/purescript#4595 · 2 commenti ·
-
type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
purescript/purescript#4590 · 3 commenti ·
-
type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
purescript/purescript#4589 · 3 commenti ·
-
type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
purescript/purescript#4588 · 5 commenti ·
-
type: enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
purescript/purescript#4587 · 1 commento · 2 reazioni ·
Tutte le issue di purescript/purescript
Issue simili
-
docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
needs triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
doclayout-0.6 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
commercialhaskell/stackage#8126 ·