Bugzilla – Bug 127
Bytecode reading is really slow for large programs
Last modified: 2003-11-19 13:13:45
You need to log in before you can comment on or make changes to this bug.
The kimwitu++ program takes 60 seconds of user space time to print out its version number and licesning information when run with the x86 JIT. Either Kimwitu++ is doing something extremely silly, or something is causing a performance problem (either the JIT or the compilation from C++ to bytecode).
This is a huge performance problem. It doesn't look like it's the code generator itself causing this: the code gen phases only take 5-10s or something to run. My personal guess is that it's the bytecode loader... -Chris
It takes 40s to just disassemble the bytecode file. This seems bad... -Chris
Wow, this is fun. kc++ has over 1200 types. I think it's causing the type resolution code to die... hrm. -Chris
Here's a patch that helps cut the time to parse the .bc file in half: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20031117/009643.html kc++ -version now takes 33s in the JIT. At least we're getting closer. -Chris
Here's another patch that chops the time to run kimwitu++ in the JIT effectively in half again: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20031117/009646.html There are other minor improvements that can be made, but I think a 4x improvement in bytecode loading speed is enough for now. Note that these changes should significantly reduce the time to link LLVM programs as well. -Chris