Improve compilation time
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- haskell
- Ambito
- build-system, performance
Direzione di ricerca
Inizia misurando le compilazioni pulite di vector e confrontandole con quelle di containers e unordered-containers. Esamina le possibilità elencate, inclusi la fusione implicita in #457, la suddivisione del pacchetto, i flag di ottimizzazione, l’inlining e la specializzazione; il lavoro è concluso quando è stato definito un approccio concreto che riduca il tempo di compilazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I was wondering if it is possible to improve the compilation time for vector. On my machine, compiling it from scratch currently takes about 1.5 minutes (1 m 35 s), which I feel like is too long. For comparison, containers takes 45 seconds and unordered-containers takes 23 seconds. Yes, I know, cabal caches the build, but it's still annoying (you still have to compile it when switching to a new GHC version, contributing to vector, in CI, when non-Haskell people want to install a tool using vector,...).
Some ideas that might help to decrease compilation time:
- disable implicit fusion (#457)
- split
vectorinto several smaller packages (e.g.vector-core,vector-storable,vector-unboxed), so that users only have to depend on the parts they actually use (vectorwould stay the same, so people could just keep using it) - don't use
-O2(find out which flags significantly improve performance and only enable those) - reduce inlining (this is probably hard without also reducing performance)
- avoid redefinitions for specialization (this would be a breaking change, but idk how big the impact would be)
I'm curious how realistic you find my ideas and if you have other ideas to improve compilation time.
- Lingua principale
- Haskell
- Stelle
- 401
- Fork
- 145
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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 haskell/vector
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
`Size` can be a newtype. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di haskell/vector
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 ·