[Mono-list] inlining of methods using structs
Rüdiger Klaehn
rudi@lambda-computing.de
Wed, 18 Aug 2004 16:07:22 +0200
Sijmen Mulder wrote:
>>Good to hear that. Is somebody currently working on that? It could make
>>a big difference with graphical applications (System.Drawing.Point and
>>System.Drawing.PointF) as well as with numerical applications (Complex)
>>and financial applications (System.Decimal).
>
>
> I am implementing a 2D game engine, and for blitting and such structs
> are often used (Point, Rectangle, etc), so that would be of great
> interrest to me, too. But how does (or will) this inlining exactly
> work? Is it already done by the JITter or the compiler, or do I have
> to do it myself?
>
You would not have to do anything. All small methods that do not contain
complex stuff like loops or exception handling would be inlined. Instant
factor 4 speed boost :-)
General guidelines on what you have to do to increase the chances of
things being inlined can be found here (under "method inlining")
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/highperfmanagedapps.asp>
This is for the current microsoft JIT, but I guess that similar rules
apply for mono.