Sto esplorando l'utilizzo di Julia come linguaggio di calcolo scientifico generico (al contrario di python), ma il tempo di avvio è piuttosto lento.Tempo di avvio lento Julia
C'è un modo per velocizzare questo?
$ time python -c 'print "Hello"'
Hello
real 0m0.030s
user 0m0.018s
sys 0m0.010s
$ time julia -e 'println("Hello")'
Hello
real 0m4.614s
user 0m4.644s
sys 0m0.116s
ADDENDUM: Here è una citazione da uno degli autori Julia lo scorso anno. C'è stata qualche difficoltà con questa strategia?
maggior parte di Julia è scritto in sé, poi analizzato, tipo-dedotto e jitted, così bootstrap l'intero sistema da zero richiede alcune 15-20 secondi. Per renderlo più veloce, abbiamo un sistema a stadi in cui si analizza , si inferisce il tipo e si memorizza nella cache una versione serializzata dell'AST con il tipo nel file sys.ji. Questo file viene quindi caricato e utilizzato per eseguire il sistema quando si esegue julia. Nessun codice LLVM o codice macchina è memorizzato nella cache in sys.ji, tuttavia, per cui tutto il jolly LLVM deve ancora eseguire ogni volta che julia si avvia, il che richiede circa 2 secondi.
Questo ritardo di avvio di 2 secondi è piuttosto fastidioso e abbiamo un piano per il che lo fissa. Il piano di base è di essere in grado di compilare interi programmi Julia in binari: eseguibili che possono essere eseguiti o librerie condivise .so/.dylib che possono essere chiamate da altri programmi come se fossero semplicemente librerie C condivise. Il tempo di avvio di un binario sarà come qualsiasi altro programma C, quindi il ritardo di avvio di 2 secondi svanirà.
Ora c'è una filiale nel repository Julialang da verificare. https://github.com/JuliaLang/julia/pull/4898. Probabilmente ci sono ancora problemi, quindi prova a tuo rischio. Probabilmente sarà incluso nella prossima versione 0.3. – ivarne