Hi Niko,
hi all,

there is an interesting thread going on on the jvm-languages mailing 
list; among the other things, I discovered that the JVM can handle the 
exception much faster if you override the fillInStack method to do 
nothing instead of building the traceback.

I think that since we don't rely on jvm tracebacks for exceptions, 
overriding such a method in all our exception classes might lead to some 
speedup.

Note that hotspot is smart enough to optimize well the case in which you 
raise a prebuilt exception, but in all cases in which you have to 
dynamically construct a new exception (e.g., OperationError) it can't.

ciao,
Anto

-------- Original Message --------
Subject: [jvm-l] Re: Fan Programing Language
Date: Tue, 22 Apr 2008 15:05:04 -0400
From: John Cowan <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
References: 
<[EMAIL PROTECTED]> 
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]> 
<[EMAIL PROTECTED]>


On Tue, Apr 22, 2008 at 2:41 PM, Jon Harrop <[EMAIL PROTECTED]> wrote:

>  > 2) you are allocating a new exception every time; the optimization
>  > described here [1] works only if the exception is pre-allocated.
>  > [1] http://blogs.sun.com/jrose/entry/longjumps_considered_inexpensive
>
>  I think that is not thread safe. Specifically, when the branch conveys
>  information (passed as arguments using a tail call, or embedded in the
>  exception) then you must use a locally allocated exception, right?

Yes, you must.   However, what makes allocating an exception expensive
is the fillInStack method, which has to walk the JVM stack.  If you
override that in your exception class with a do-nothing method, then
locally allocating exceptions is very cheap.

-- 
GMail doesn't have rotating .sigs, but you can see mine at
http://www.ccil.org/~cowan/signatures

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google 
Groups "JVM Languages" group.
To post to this group, send email to [EMAIL PROTECTED]
To unsubscribe from this group, send email to 
[EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---


_______________________________________________
[email protected]
http://codespeak.net/mailman/listinfo/pypy-dev

Reply via email to