[IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Seo Sanghyeon
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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Dino Viehland
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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 1:20 PM
To: users@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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Sample disclaimer text
___
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Shri Borde
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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 1:20 PM
To: users@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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

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


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Seo Sanghyeon
2008/8/12 Dino Viehland [EMAIL PROTECTED]:
 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.

Argh, I was using exec as a poor man's macro tool. Exactly
computationally heavy code was roop-unrolled using exec.

You can guess why I was very disappointed...

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


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Dino Viehland
Shri just suggested (off-line and on the bug) that we detect non-straight line 
code and actually compile it.  We used to have logic around to do that so it 
shouldn't be too hard to bring it back and make this work more as expected :)

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 2:00 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Horrible performance regression of exec on IP2

2008/8/12 Dino Viehland [EMAIL PROTECTED]:
 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.

Argh, I was using exec as a poor man's macro tool. Exactly
computationally heavy code was roop-unrolled using exec.

You can guess why I was very disappointed...

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

Sample disclaimer text
___
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Tomas Matousek
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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 1:20 PM
To: users@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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

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

___
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


Re: [IronPython] Horrible performance regression of exec on IP2

2008-08-11 Thread Dino Viehland
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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seo Sanghyeon
Sent: Monday, August 11, 2008 1:20 PM
To: users@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@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

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



Sample disclaimer text
___
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com