[IronPython] Patched, profiling IronPython executable?

Shri Borde Shri.Borde at microsoft.com
Fri Aug 15 21:14:47 CEST 2008


Have you tried using the VS profiler on a precompiled dll? I don't know how well it works, but VS profiler needs IL on disk, and with precompilation, you have that. There is still IL generated on the fly for rules, but you might be able to get some reasonable numbers.

Thanks,
Shri


-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Orestis Markou
Sent: Friday, August 15, 2008 9:52 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Patched, profiling IronPython executable?

Thanks, I'll have a look at that. Hopefully it will help the effort of
porting Resolver One to IP2.

Dino Viehland wrote:
> FastCallable's certainly the right spot if anything will come close.  My main concern is that it'll probably leave a lot of stuff out...
>
> In 2.0 this is actually easier.  You could modify the DLR in MetaAction.cs to wrap every single dynamic operation - whether that be addition, calling something, getting a member, etc...  There's a method called GetMetaObjectRule and it has:
>
>             Expression body = rewriter.VisitNode(AddReturn(binding.Expression, retType));
>
> You could modify this to be something like:
>
>         Expression tmp = Expression.Variable(body.Type);
>         body = Expression.Scope(
>                         Expression.Call(
>                                 Expression.Comma(
>                                         Expression.Call(typeof(MyType).GetMethod("Enter")),     // MyType is some public type somewhere...
>                                         Expression.Assign(tmp, body),
>                                         Expression.Call(typeof(MyType).GetMethod("Exit")),
>                                         tmp
>                                 )
>                         ),
>                         tmp
>                 )
>         );
>
> And you'd get information on every call - warning, this code was compiled with Outlook.
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Orestis Markou
> Sent: Friday, August 15, 2008 2:25 AM
> To: users at lists.ironpython.com
> Subject: [IronPython] Patched, profiling IronPython executable?
>
> Hi,
>
> following all the discussion about profiling etc, I was poking around in
> IP1.1.2 source code, trying to find out if there is a 'bottleneck' of
> sorts, that all function calls are threaded through. My thinking was
> that it would be then possible to surround this with profiling
> information, logging time taken etc. and compile a profiling ipy.exe.
>
>  From my venture, I think that ICallable is what I should be looking
> for. I see that it has many implementors, but I guess FastCallable (in
> all its generated glory) should capture a lot of the cases, right?
>
> Am I even on the right track here?
>
> Orestis Markou
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
_______________________________________________
Users mailing list
Users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




More information about the Ironpython-users mailing list