Hello all. My colleagues and I are developing a lightweight continuous profiler for Mono. We have a few questions for the frequenters of this newsgroup.
A little bit about the project... We intend to build a profiler that will run at low enough overhead that the profiler could be left on all the time without adversely affecting the performance of user applications. The output from our profiler would be suitable for driving on-line an on-line optimizer which would reside in future Mono runtimes. To achieve such low overhead, we plan on using a statistical sampling process which will periodically interrupt the executing program and sample the running program's program counter. Currently, we plan on using OProfile for this part of the project. Output from OProfile is not itself suitable as input for an online optimizer however. For starters, the data collected by OProfile would be in terms of translated x86 instructions rather than in terms of the original MSIL instructions. This is an especially important point since on-line optimizations would almost certainly be applied to the higher-level MSIL code, and we would necessarily want statistics in terms of MSIL rather than translated x86. So, what we would really like to have is some kind of mapping from the translated x86 instructions back to the original MSIL instructions from which those translated instructions arose. Does anyone have any ideas on how to make such a mapping from x86 instruction back to MSIL instruction? Alternatively, if we only wanted to match x86 basic block to MSIL basic block, how would the problem change? How about mapping x86 functions back to MSIL methods? Thanks. -James __________________________________________________ Do you Yahoo!? U2 on LAUNCH - Exclusive greatest hits videos http://launch.yahoo.com/u2 _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
