मैं जूलिया को एक सामान्य उद्देश्य वैज्ञानिक कंप्यूटिंग भाषा (पाइथन के विपरीत) के रूप में उपयोग कर रहा हूं, लेकिन स्टार्टअप समय बहुत सुस्त है।धीमी जूलिया स्टार्टअप समय
क्या इसे गति देने का कोई तरीका है?
$ 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
परिशिष्ट: Here जूलिया लेखकों में से एक पिछले साल से एक उद्धरण है। क्या इस रणनीति के साथ कुछ कठिनाई थी?
जूलिया के अधिकांश अपने आप में लिखा है, तो पार्स, टाइप-inferred और jitted, तो खरोंच से पूरे सिस्टम bootstrapping कुछ 15-20 सेकंड लेता है। इसे तेज़ी से बनाने के लिए, हमारे पास एक चरणबद्ध प्रणाली है जहां हम पार्स, टाइप-अवरक्त, और उसके बाद फ़ाइल sys.ji में प्रकार-अनुमानित एएसटी का क्रमबद्ध संस्करण कैश करते हैं। इस फ़ाइल को तब लोड किया जाता है और जब आप जुलिआ चलाते हैं तो सिस्टम को चलाने के लिए उपयोग किया जाता है। कोई एलएलवीएम कोड या मशीन कोड sys.ji में कैश किया गया है, हालांकि, सभी एलएलवीएम जिंगिंग को अभी भी जूलिया शुरू होने पर की आवश्यकता होती है, इसलिए लगभग 2 सेकेंड लगते हैं।
यह 2-सेकंड स्टार्टअप देरी काफी परेशान है और हमारे पास इसे ठीक करने की योजना है। मूल योजना पूरे जूलिया कार्यक्रमों को बाइनरी में संकलित करने में सक्षम होना है: या तो निष्पादन योग्य जिन्हें चलाया जा सकता है या .so/.dylib साझा पुस्तकालय जिन्हें अन्य प्रोग्रामों से बुलाया जा सकता है जैसे कि बस सी पुस्तकालयों को साझा किया गया था। बाइनरी के लिए स्टार्टअप समय किसी अन्य सी प्रोग्राम की तरह होगा, इसलिए 2-सेकंड स्टार्टअप विलंब गायब हो जाएगा।
अब जूलियांग भंडार में एक शाखा है जिसे आप देख सकते हैं। https://github.com/JuliaLang/julia/pull/4898। शायद कुछ मुद्दे अभी भी शेष हैं, इसलिए अपने जोखिम पर आज़माएं। इसे शायद आगामी 0.3 रिलीज में शामिल किया जाएगा। – ivarne