E perché? Esiste un processo di bootstrap e compila il vero processo del compilatore, ma quale parte consuma più tempo?Perché il pacchetto Macports di GHC impiega così tanto tempo per essere compilato?
risposta
Alcuni processi di compilazione richiedono un po 'di tempo e la quantità di tempo dipende fortemente dalla velocità della CPU e da quanto tempo di processore può essere dedicato alla build.
Se si è preoccupati che possa essere sospeso a un certo punto, eseguire install
con il flag -v
per ottenere un output più descrittivo relativo al processo di compilazione. Il comando sarebbe quindi qualcosa del tipo:
sudo port -v install [portfile]
Oltre a quanto è grande e complesso il progetto, che tipo di disco rigido utilizza la scatola, ecc. – NotMe
A destra - Mi stavo abbastanza generale, ma naturalmente la dimensione del progetto, il numero di file, l'utilità di compilazione/compilazione, il numero di dipendenze, la velocità di lettura/scrittura, ecc., contribuiscono al tempo richiesto. – nearlymonolith
Può volerci un po '. Quando l'ho compilato sul mio iBook G4, ci sono volute 7 ore. Anche su un MacBook Pro con molta RAM e un processore veloce, possono essere necessarie 2-3 ore.
Edificio GHC è noto per essere utilizzato per sempre. Ho sentito storie dell'orrore a proposito di prendere più di 8 ore per una build da sorgente. Da quello che ho capito, è principalmente dovuto al fatto che la build predefinita di GHC tenta di fare enormi quantità di ottimizzazione al fine di accelerare le proprie prestazioni di runtime. Anche con un sistema parzialmente prebuilt (che è quello che ritengo che Macports fornisce) questo processo può richiedere ancora un po 'a causa di tutti i collegamenti.
EDIT: Vedere il seguente http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly
Questa è la risposta corretta: GHC richiede più tempo per compilare qualsiasi software che conosca. L'ho costruito per oltre 8 ore sul mio i3. – Mikhail
Dal punto di vista di Gentoo:
In Gentoo, tutto viene compilato. Quello che facciamo per GHC è che noi sviluppatori (inclusi sviluppatori non ufficiali come me) compili una nuova versione di GHC da una versione precedente per creare una versione di bootstrap binario, quindi la impacchetta e lascia che gli utenti usino quella per compilare una nuova versione.
Dalla memoria, la compilazione del file binario può richiedere più del doppio (occorrono circa 45 minuti per utilizzare il binario per compilare una nuova versione sul mio laptop). Ci sono alcune differenze (la documentazione è costruita e spedita con il binario piuttosto che ogni utente che la costruisce da sé) ma nessuna che io possa vedere per spiegare una così grande differenza di tempo. L'ebuild effettivo utilizzato per compilare sia il binario che gli utenti finali può essere trovato qui (abilitando il flag ghcbootstrap significa che crea un binario, abilitando il flag binario significa che gli utenti installano e usano il binario precompilato invece di costruire GHC): http://code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild
Come tale, la mia ipotesi è che è il processo di avvio iniziale che impiega così tanto tempo se Macports sta effettivamente costruendo un binario iniziale di avvio (specialmente se lo fa dall'ultima versione solo C e si avvia automaticamente alla versione che in realtà vuole installare).
Questa è l'unica risposta che almeno tenta di rispondere alla domanda. –
- 1. Perché Android AVD impiega così tanto tempo per avviarsi?
- 2. Perché la mia gemma impiega così tanto tempo a caricarsi?
- 3. Perché le compilazioni richiedono così tanto tempo?
- 4. Perché l'osservazione dell'oplog richiede così tanto tempo in meteor/mongo?
- 5. Perché ci vuole così tanto tempo per creare un tavolo?
- 6. La mia applicazione impiega così tanto tempo per avviare la schermata Prima attività
- 7. Perché il mio sito ASP.Net in esecuzione su IIS7 impiega così tanto tempo a caricarsi dopo un periodo di inattività?
- 8. GHC 6.12 e MacPorts
- 9. Perché un sito Meteor distribuito richiede così tanto tempo per essere caricato?
- 10. Perché le immagini GIF animate richiedono così tanto tempo per essere caricate?
- 11. Perché ActionDispatch :: Routing :: RouteSet vuole così tanto tempo
- 12. vector :: clear() costano così tanto tempo?
- 13. La creazione di AMI richiede così tanto tempo
- 14. Perché Java G1 gc trascorre così tanto tempo nella scansione di RS?
- 15. Perché i breakpoint condizionali rallentano così tanto il mio programma?
- 16. Perché GHC rende la correzione così confusa?
- 17. Perché il primo test eseguito con Robolectric richiede così tanto tempo?
- 18. Perché Visual Studio prende così tanto tempo per aggiungere un progetto o un file
- 19. Perché ci vuole così tanto tempo per rinominare una colonna in mysql?
- 20. Quanto tempo impiega Glibc per compilare?
- 21. Perché GHC è così grande/grande?
- 22. Perché l'invio di un lavoro a mapreduce richiede così tanto tempo in generale?
- 23. Perché funzioni direttamente importati in GHC differiscono così tanto con le funzioni che scrivo con il codice sorgente copiato da GHC Biblioteche
- 24. Perché ci vuole così tanto tempo prima che Meteor carichi i miei dati su Heroku?
- 25. Implementazione di risultati MultiDex nella compilazione per così tanto tempo, e infine errore di heap spazio
- 26. Ghc: codice Haskell parzialmente compilato?
- 27. Il pacchetto GHC è nascosto
- 28. Il cambio di contesto impiega tempo significativo?
- 29. Perché HTML5 si concentra così tanto su Javascript?
- 30. La sincronizzazione repo AOSP impiega troppo tempo
Sai che puoi scaricare un compilatore precompilato e un set di librerie per OS X? http://hackage.haskell.org/platform/mac.html –
Capisco che ci sono problemi con l'interpolazione tra la versione pre-build e Macports. – hampurter
OK, non ho bisogno di nulla relativo a Haskell da Macport. L'installatore della piattaforma e la Cabala sono stati sufficienti. –