Surely it's no news that Java is competitive with C for pure numeric
operations.

On Dec 1, 2007 11:02 AM, Neil Bartlett <[EMAIL PROTECTED]> wrote:
>
> "Scala faster than C" post to reddit, anyone? ;-)
>
>
>
> On 1 Dec 2007, at 10:53, David MacIver wrote:
>
> >
> > More interesting data points:
> >
> > On a 64-bit machine running linux there's no difference between the
> > client and server times. I don't know whether this is because the
> > 64-bit client and server VM optimisations aren't as different as they
> > are in 32-bit mode or whether there's some advantage to 64-bit here
> > (if there is, gcc isn't taking advantage of it, see below).
> >
> > The obvious C translation of
> >
> > #include <stdio.h>
> >
> > int main(){
> >    long bits = 0L;
> >    int  n = 2000000001;
> >    while (n > 0) {
> >      bits ^= (1 << 5);
> >      n--;
> >    }
> >    printf("%d", bits);
> > }
> >
> > Seems to take longer than the client time, regardless of whether it's
> > in 64 or 32 bit mode.
> >
> > On Dec 1, 2007 3:18 AM, David Pollak <[EMAIL PROTECTED]>
> > wrote:
> >> Yeah, the Scala code was a port of Java code that does similar
> >> things.  With
> >> the Scala command line and some other Scala tools, it's much faster
> >> to make
> >> a change and test the change with Scala than with Java.
> >>
> >>
> >>
> >> On 11/30/07, David MacIver <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>
> >>>
> >>> For what it's worth, the obvious Java translation does the same
> >>> thing:
> >>>
> >>> class Foo{
> >>>  public static void main(String[] args){
> >>>    long bits = 0L;
> >>>    long start = System.currentTimeMillis();
> >>>    int  n = 2000000001;
> >>>    while (n > 0) {
> >>>      bits ^= (1 << 5);
> >>>      n--;
> >>>    }
> >>>    System.out.println(bits);
> >>>    long end = System.currentTimeMillis();
> >>>    System.out.println(end-start);
> >>>
> >>>  }
> >>> }
> >>>
> >>> So it isn't a quirk of the bytecode scala produces
> >>>
> >>>
> >>> On Nov 30, 2007 11:18 PM, Erik Engbrecht
> >>> <[EMAIL PROTECTED]> wrote:
> >>>> David,
> >>>> For me 1.5 and 1.6 perform about the same...1.6 is a little faster.
> >>>> However, -server yields the surprisingly fast results that you are
> >> seeing
> >>>> under 1.6 and -client yields the slow results that you are seeing
> >>>> under
> >> 1.5.
> >>>>
> >>>> It still doesn't explain why it's so fast...but it's another data
> >>>> point.
> >>>> I'm using an ancient computer with Linux.
> >>>>
> >>>> -Erik
> >>>>
> >>>>
> >>>> On Nov 30, 2007 5:49 PM, David Pollak < [EMAIL PROTECTED]
> >>>> >
> >>>> wrote:
> >>>>> I've got the following Scala code:
> >>>>> object Foo {
> >>>>>  def main(argv: Array[String]) {
> >>>>>    var bits = 0L
> >>>>>    val start = System.currentTimeMillis()
> >>>>>    var n = 2000000001
> >>>>>    // var n = 2000000001L // makes things very slow
> >>>>>    while (n > 0) {
> >>>>>      bits = bits ^ (1 << 5)
> >>>>>      n = n - 1
> >>>>>    }
> >>>>>    System.out.println(bits)
> >>>>>    val end = System.currentTimeMillis()
> >>>>>    System.out.println (end-start)
> >>>>>  }
> >>>>> }
> >>>>>
> >>>>> I'm enclosing the source and the bytecode.
> >>>>>
> >>>>> There are 2B iterations.
> >>>>>
> >>>>> On my Core 2 Quad running JDK 1.6 (32 bit), the code takes 2 ms to
> >> run.
> >>>>>
> >>>>> On my Mac Book Pro (Core Duo, JDK 1.5) it takes 6,600 ms.
> >>>>>
> >>>>> The run time on the Mac seems more "reasonable".  What's going on?
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> lift, the secure, simple, powerful web framework http://
> >>>>> liftweb.net
> >>>>> Collaborative Task Management http://much4.us
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> http://erikengbrecht.blogspot.com/
> >>>>
> >>>>
> >>>>>
> >>>>
> >>>
> >>> http://liftweb.net
> >>> Collaborative Task Management http://much4.us
> >>>
> >>>>>
> >>>
> >>
> >
> > >
>
>
> >
>

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

Reply via email to