GSoC 2014 - Report 8

Hey everyone!

Let me share this week's progress.

Earlier this week, I finished my tests with Parrot for its releases 2.7 - 3.0. Including rurban's profiling, we now have data (reliable to some extent) for the commits in this range. The main objective for the profiling was to determine the highest overhead to be targeted next for refactor.

(For the list of all the identified overheads, please take a look at - http://wiki.enlightenedperl.org/gsoc2014/ideas/improve_performance_of_me...)

Later in the week, I started looking into one of the listed overheads - "Export the needed CallContext methods to allow direct access to the needed fields". Due to this overhead, making indirect calls to CallContext VTABLE methods is too slow. (Please take a look at - http://wknight8111.blogspot.com/2009/10/optimizing-parrot.html)

My first attempt was to optimize PCC (src/call/pcc.c) by inlining VTABLE calls in Parrot_pcc_add_invocant and further by expanding Parrot_pcc_add_invocant in the definition for Parrot_pcc_invoke_method_from_c_args.

However, we realized that an indirect call was still being made to the VTABLE methods (as I have mentioned before) and hence, a performance improvement could not be expected. Resolving this issue is the work included in my current task.

This work is being tracked by the following ticket - https://github.com/parrot/parrot/issues/1083

Also, I will be pushing my work to the branch - https://github.com/ZYROz/parrot/tree/pcc-optimize

That's all folks! :)