[IronPython] Horrible performance regression of exec on IP2

Dino Viehland dinov at exchange.microsoft.com
Mon Aug 11 23:07:00 CEST 2008


My guess would be if a function is being defined in exec it's more likely to be used multiple times then if the code had no function definitions.  It's probably a better heuristic then we have today (which is none) :)

I agree we really need some hybrid interpretation/compile mode but that's not likely to happen in 2.0 :(.

-----Original Message-----
From: Tomas Matousek
Sent: Monday, August 11, 2008 2:04 PM
To: Discussion of IronPython; Dino Viehland
Subject: RE: [IronPython] Horrible performance regression of exec on IP2

The heuristics for function definitions won't actually be a good one.
You actually *want* function and classes definitions to be evaluated since they are executed once unless you reload a module.
We should really have a counter on methods that counts the number of calls and compile the code if the counter reaches some threshold.

Tomas

-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Shri Borde
Sent: Monday, August 11, 2008 1:57 PM
To: Dino Viehland; Discussion of IronPython
Subject: Re: [IronPython] Horrible performance regression of exec on IP2

Done

Thanks,
Shri


-----Original Message-----
From: Dino Viehland
Sent: Monday, August 11, 2008 1:54 PM
To: Shri Borde
Subject: RE: [IronPython] Horrible performance regression of exec on IP2

Sounds like a good plan - do you want to add those comments to the bug? :)

-----Original Message-----
From: Shri Borde
Sent: Monday, August 11, 2008 1:53 PM
To: Dino Viehland
Subject: RE: [IronPython] Horrible performance regression of exec on IP2

I believe that when Jacob enabled interpretation for exec, we used to compile code for exec if it had loops in it. That code no longer seems to be around, and now we will interpret the same. We could put back that heuristic. It would not help with Seo's example as it has a recursive function definition, but we can add class and function definitions to the list of heuristics as well. We could restrict interpretation to straight line code consisting of statements - which would still satisfy the main scenario of good per fro exec/evaling of simple code snippets.

Thanks,
Shri


-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Dino Viehland
Sent: Monday, August 11, 2008 1:29 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Horrible performance regression of exec on IP2

This is probably because we'll interpret code that is executed using exec.  So anything very computationally heavy will be slow in exec.  Maybe we need a way to disable that.

If you want to see what it'd be like if we weren't interpreting you could use compile() first.

-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 1:20 PM
To: users at lists.ironpython.com
Subject: [IronPython] Horrible performance regression of exec on IP2

This is just to let you know that I filed a CodePlex issue on this
topic. Please comment (and vote!) there.
http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=17781

In particular, I am interested in the result of execfib.py on .NET.
Current data is on Mono.

--
Seo Sanghyeon
_______________________________________________
Users mailing list
Users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Sample disclaimer text
_______________________________________________
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



Sample disclaimer text



More information about the Ironpython-users mailing list