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-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 should

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 with

Re: Benchmarking Smalltalk on JVM

2012-02-02 Thread Charles Oliver Nutter
On Thu, Feb 2, 2012 at 4:47 AM, Rémi Forax fo...@univ-mlv.fr 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

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

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 a

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 a object

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Charles Oliver Nutter
On Tue, Jan 31, 2012 at 6:52 PM, Mark Roos mr...@roos.com 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

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

Re: Benchmarking Smalltalk on JVM

2012-02-01 Thread Mark Roos
...@headius.com To: Da Vinci Machine Project mlvm-dev@openjdk.java.net 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 mr...@roos.com wrote: For the initial JDK7 I get 400ms

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 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

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 Charles Oliver Nutter
the unwary in case it escapes but for now its a power tool. regards mark From:        Charles Oliver Nutter head...@headius.com To:        Da Vinci Machine Project mlvm-dev@openjdk.java.net Date:        02/01/2012 12:43 PM Subject:        Re: Benchmarking Smalltalk on JVM Sent

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 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 objects

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