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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Orestis Markou Sent: Friday, August 15, 2008 2:25 AM To: users@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@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com