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