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.

3 comments:

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 :)