Tôi đang khám phá bằng cách sử dụng Julia như một ngôn ngữ máy tính khoa học có mục đích chung (như trái ngược với python), nhưng thời gian khởi động của nó khá chậm chạp.Slow Julia Startup Time
Có cách nào để tăng tốc độ này không?
$ 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
PHỤ LỤC: Here là một trích dẫn từ một trong những tác giả Julia năm ngoái. Có khó khăn gì với chiến lược này không?
Hầu hết Julia được viết bằng chính nó, sau đó phân tích cú pháp, kiểu suy luận và JITted, vì vậy bootstrapping toàn bộ hệ thống từ đầu mất một 15-20 giây. Để làm cho nó nhanh hơn, chúng tôi có một hệ thống phân đoạn, trong đó chúng tôi phân tích cú pháp, nhập-infer và sau đó lưu vào bộ nhớ cache một phiên bản được sắp xếp theo thứ tự của AST loại được suy ra trong tệp sys.ji. Tệp này sau đó được tải và được sử dụng để chạy hệ thống khi bạn chạy julia. Tuy nhiên, không có mã LLVM hoặc mã số được lưu trong bộ nhớ cache trong sys.ji, do đó tất cả các lệnh LLVM vẫn cần để thực hiện mỗi khi julia khởi động, do đó mất khoảng 2 giây.
Thời gian trễ khởi động 2 giây này khá khó chịu và chúng tôi có kế hoạch để sửa chữa. Kế hoạch cơ bản là có thể biên dịch toàn bộ chương trình Julia thành nhị phân: một trong hai tệp thực thi có thể chạy hoặc .so/.dylib thư viện được chia sẻ có thể được gọi từ các chương trình khác. Thời gian khởi động cho một nhị phân sẽ là giống như bất kỳ chương trình C nào khác, do đó, thời gian trễ khởi động 2 giây sẽ biến mất.
Bây giờ có một chi nhánh trong kho lưu trữ Julialang bạn có thể xem. https://github.com/JuliaLang/julia/pull/4898. Có lẽ một số vấn đề vẫn còn, vì vậy hãy thử rủi ro của riêng bạn. Nó có thể sẽ được đưa vào bản phát hành sắp tới 0.3. – ivarne