Re: Benchmarking Smalltalk on JVM

2012-02-13 Thread Mark Roos
Rémi your comment The idea is just to propagate the type you need if you can. So for a = 2 <= 3, '<=' will return a RtObject but for if (2 <= 3), '<=' will return a boolean because it's called in an if. Ah yes, this is something that ST compilers do and I think is a good idea. Basically

Re: Benchmarking Smalltalk on JVM

2012-02-13 Thread Rémi Forax
On 02/02/2012 04:45 AM, Mark Roos wrote: > From Rémi > Anyway, you can optimize the last instructions, <= should > return a boolean >so the sequence should be: > >ldc 4100 >aload 1 >indy <= (ILObject;)Z >if_eq LABEL 1 > > I am not sure how to han

Re: Benchmarking Smalltalk on JVM

2012-02-02 Thread Mark Roos
Some nice comments from Rémi So if one call is not inlined in the middle of the body of the loop, then the VM will not remove your MutableInteger. This could be what is causing the difference in time. I have seen some mails that indicate indy GWT depth ( methodHandle sta

Re: Benchmarking Smalltalk on JVM

2012-02-02 Thread Charles Oliver Nutter
On Thu, Feb 2, 2012 at 4:47 AM, Rémi Forax wrote: > It can be an escape analysis change. > As far as I know, escape analysis don't work through indy call but > if Charles see same performance as Java, escape analysis has to work ?? My comment was about using an iterator/cursor for iteration (no o

Re: Benchmarking Smalltalk on JVM

2012-02-02 Thread Rémi Forax
On 02/02/2012 04:45 AM, Mark Roos wrote: > from Rémi > > if you know it will never escape,you should use an int directly. > > Well I am trying to build a Smalltalk system which has no static types so > I have to box the ints. Since the code I showed was programmer entered I > need to stay w

Re: Benchmarking Smalltalk on JVM

2012-02-02 Thread Rémi Forax
On 02/02/2012 04:45 AM, Mark Roos wrote: > From Rémi > Without the descriptors of invokedynamic and the code of the > BSM, it's >hard to tell. > > Yes but they have no invoke dynamics and I was just wondering if my > indy part was causing the > issue. Your answer told me that I s

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
>From Rémi Anyway, you can optimize the last instructions, <= should return a boolean so the sequence should be: ldc 4100 aload 1 indy <= (ILObject;)Z if_eq LABEL 1 I am not sure how to handle this in a Smalltalk envrionment. All of the objec

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
>From Rémi Without the descriptors of invokedynamic and the code of the BSM, it's hard to tell. Yes but they have no invoke dynamics and I was just wondering if my indy part was causing the issue. Your answer told me that I should be OK so that was helpful. This same code was

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
>From charles Ahh, ok, I figured it was something like that. So is your code there actual code, or is it what you compile the code as when you realize the value won't escape? FWIW, I have done experiments with using enumerators instead of integer loops T

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
from Rémi if you know it will never escape,you should use an int directly. Well I am trying to build a Smalltalk system which has no static types so I have to box the ints. Since the code I showed was programmer entered I need to stay with the boxes. There are cases where the compiler ge

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Charles Oliver Nutter
nteger compare method > > I'll probably add a mutable bit to the header to protect the unwary in case > it escapes but for now its > a power tool. > > regards > mark > > > > > > From:        Charles Oliver Nutter > To:        Da Vinci Machine Projec

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Rémi Forax
On 02/01/2012 10:44 PM, Mark Roos wrote: > This may be a little much to ask but... These bytecodes take about > 20ns per cycle to run on > my 2.8 GHz mac using jdk8-B23 without TieredCompile. Does this seem > reasonable given the number of indy calls? > The GWT depth on the method sends is 1 >

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Rémi Forax
On 02/01/2012 10:44 PM, Mark Roos wrote: > Hi Charles > > Its pretty simple. All of my integers are boxed and are by definition > immutable. However I noticed > that many uses of integer were for loop counters and indexes where the > integer never escapes from > the method. So I added two prim

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
This may be a little much to ask but... These bytecodes take about 20ns per cycle to run on my 2.8 GHz mac using jdk8-B23 without TieredCompile. Does this seem reasonable given the number of indy calls? The GWT depth on the method sends is 1 thanks mark LABEL <56> LABEL 1

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
tter To: Da Vinci Machine Project Date: 02/01/2012 12:43 PM Subject:Re: Benchmarking Smalltalk on JVM Sent by:mlvm-dev-boun...@openjdk.java.net On Tue, Jan 31, 2012 at 6:52 PM, Mark Roos wrote: > For the initial JDK7 I get 400ms, moving to jdk8 b20 it drops to 117ms (

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
Thanks Adding -XX:-TieredCompilation made the run time consistent at 21ms. Still not as fast as b20 ( 5ms ) but faster than 7u4 which is 29ms. mark ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/m

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Charles Oliver Nutter
On Tue, Jan 31, 2012 at 6:52 PM, Mark Roos wrote: > For the initial JDK7 I get 400ms,  moving to jdk8 b20 it drops to 117ms ( > very nice). > I then converted some constructor lookups to statics to get to 66ms. > Then the obvious move to make an integer cache for which I used the jTalk > range of

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Christian Thalinger
On Feb 1, 2012, at 9:34 AM, Rémi Forax wrote: > On 02/01/2012 01:52 AM, Mark Roos wrote: >> I just loaded about 250K lines of Smalltalk code into my jvm >> implementation so now I can start >> some real benchmarks using our application. All of this was done on a >> Mac. >> >> My first try was

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Rémi Forax
On 02/01/2012 01:52 AM, Mark Roos wrote: > I just loaded about 250K lines of Smalltalk code into my jvm > implementation so now I can start > some real benchmarks using our application. All of this was done on a > Mac. > > My first try was a object load which takes about 20 files and creates >

Benchmarking Smalltalk on JVM

2012-01-31 Thread Mark Roos
I just loaded about 250K lines of Smalltalk code into my jvm implementation so now I can start some real benchmarks using our application. All of this was done on a Mac. My first try was a object load which takes about 20 files and creates a pretty complex object set. This takes 100 seconds i