Monday, October 15, 2007

Profiling Groovy Meta-layer

I'm planning to profile the meta-layer of Groovy. What I'm looking for in this profiling is a number of arguments needed by methods of general applications.

Currently, ScriptByteCodeAdapter#invoke* alway use Object[] as a wrapper of a target method's arguments when dispatching it, and it's difficult for my JIT compiler to replace it with a new call, as suggested by Charles Nutter that my dataflow analysis may be time-consuming. So I came up with the idea of profiling.

There are invoke*0 and invoke*N in ScriptByteCodeAdapter class, and I think there would be invoke*1, invoke*2 ... invoke*K, where K is a threshold number found by the profiler. Then the class ASMClassGen would be patched to generate these newly added methods.


Anonymous said...

Do you have thought that someone might want to contact with you to contract like freelance? How was he/she going to do it if there is no an email of contact?

chanwit said...

Thank for this. I didn't realize that I made my old contact block disappear since I changed the new template.

Anonymous said...

Looking forward to your GJIT :)