[Mono-devel-list] System.Reflection Performance

David Sheldon dave at earth.li
Sat Jan 3 05:45:59 EST 2004


On Fri, Jan 02, 2004 at 01:33:24PM -0500, Ben Maurer wrote:
> So, in general the thing to follow is:
> 
>       * Check to see if the compiler is generating extra IL for you
>         (like in the foreach case, where it makes two extra variables
>         and adds in exception catching). Look at the IL it generates.

Is there an easy way to get the IL for a single method out of an
assembly, or even out of mcs? I am also a little confused how to see
what the JITer does with a method. Mono has --compile METHOD, but I
spent some time working out how to specify the name of a method for it,
and does it output anything unless you use -v -v? Is there a better way
than doing this. I think that these might be the sort of things that
should go in this document.


>       * Check if the JIT makes any of the items into instructions (such
>         as String.Length).

Could you explain this one in more detail please?


> Lists like this are pretty silly, I do not keep one -- either in my head
> or on paper. When I look at how to make mcs faster, I don't say:
> 
> `Man, today, why dont i replace all =="" calls with .Length == 0'
> 
> rather I say:
> 
> `Method Foo () runs REALLY slow, whats up with that'

Are you sure you don't keep one in your head, but a simpler one that
says "Why on earth am I doing it this way, creating a whole bunch of
objects when I could be doing it so much better"? Just knowing what
creates a message bit of reflection and what is handled by the compiler
will help people like me avoid doing really stupid things. 

David
-- 
     To understand recursion, we must first understand recursion.



More information about the Mono-devel-list mailing list