2010-11-02 19 views
9

Bu biraz öznel, ancak LLVM JIT'i hızlandırmakla ilgili sıkıntılar yaşıyorum. Büyük kod gövdelerini atmak, sadece tembel derleme açıkken bile onları yorumlamak kadar 50 kat fazla zaman alır.LLVM JIT seçenekleri hızlandırıyor mu?

Öyleyse, nasıl jabları hızlandırabilirim, ne tür ayarları kullanabilirim?

Diğer öneriler?

cevap

11

LLVM'nin bir JIT derleyicisi olarak çok hızlı olmadığını söylemek üzereyim, AOT/statik derleyici olarak daha iyidir.

llvm-lua projemde aynı hız sorunları yaşadım. Yaptığım şey, büyük Lua fonksiyonlarının JIT derlemesini devre dışı bırakmaktı. llvm-lua, LLVM'nin Lua coroutines'ten çalıştırmak için çok fazla C-yığın alanı gerektirdiğinden tembel derleme desteğine sahip değildir.

Ayrıca size programın ana() fonksiyonunda bu kullanırsanız:

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

O LLVM geçer zamanlamasını sağlayacak '-zaman-pas' gibi LLVM gelen komut satırı seçenekleri bir sürü gösterecektir, JIT derlemesinin hangi bölümlerinin en çok zaman alacağını görmek için.