2010-11-02 39 views
9

Đó là loại chủ quan, nhưng tôi đang gặp khó khăn khi nhận được LLVM JIT lên đến tốc độ. Việc đánh các cơ quan lớn của mã mất 50 lần nhiều thời gian như chỉ giải thích chúng ngay cả khi biên dịch lười biếng được bật lên.LLVM JIT tăng tốc độ lựa chọn?

Vì vậy, tôi đã tự hỏi làm thế nào tôi có thể tăng tốc độ nhô lên, loại cài đặt nào tôi có thể sử dụng?

Bất kỳ đề xuất nào khác?

Trả lời

11

Tôi rất tiếc khi nói rằng LLVM không phải là rất nhanh như một trình biên dịch JIT, nó là tốt hơn như một trình biên dịch AOT/tĩnh.

Tôi đã gặp sự cố tốc độ tương tự trong dự án llvm-lua của mình. Những gì tôi đã làm là để vô hiệu hóa JIT biên dịch các hàm Lua lớn. llvm-lua không có hỗ trợ biên dịch lười biếng được bật kể từ khi LLVM đòi hỏi quá nhiều không gian C-stack để chạy từ Lua coroutines.

Ngoài ra nếu bạn sử dụng này trong() Chức năng chính của chương trình của bạn:

llvm::cl::ParseCommandLineOptions(argc, argv, 0, true); 

Nó sẽ phơi bày rất nhiều tùy chọn dòng lệnh từ LLVM như '-time-đèo' mà sẽ cho phép thời gian của LLVM đi, để xem phần nào của quá trình biên dịch JIT đang chiếm nhiều thời gian nhất.

Các vấn đề liên quan