[Melbourne-pm] Still performing well..

Daniel Pittman daniel at rimspace.net
Mon May 17 23:52:40 PDT 2010


Toby Corkindale <toby.corkindale at strategicdata.com.au> writes:
> On 18/05/10 15:28, Daniel Pittman wrote:
>> Toby Corkindale<toby.corkindale at strategicdata.com.au>  writes:
>>
>>> After the last Perlmongers meeting I was curious to benchmark Perl vs Go vs
>>> Scala in more than just a trivial case.
>>>
>>> I setup a test to read in a large CSV file, performing some minor numeric and
>>> text manipulation upon each row, and outputing the results.
>>
>> When you say "large", do you mean 1MB, 10MB, 1GB, 1TB?
>
> Uh, 10,000 lines + header.
>
>> I suspect that you will find the figures change relationship a little as you
>> go up the first few orders of magnitude.
>
> Repeating test with 100,000 lines + header, we get:
>
> Perl - 10.962 sec
> Scala - 13.31 sec
> Go - 16.77 sec
>
> How curious.. Perl and Go scaled linearly with the size of the dataset, but
> Scala didn't. Now repeating the test with 1,000,000 rows.

I bet that you finally pushed the GC hard enough that Scala started to feel
the pain and suffering of that...

> Also including resident memory size this time..
>
> Perl - 111.3 sec  (~6 MB)
> Scala - 115.5 sec (~73 MB)
> Go - 154.3 sec (~2 MB)
>
> How curious. It looks like Scala would overtake Perl if we upped the magnitude
> one more time!

...and now you are finally starting to hit the point that some of the long
running process optimizations and other bits of JVM magic are starting to kick
in.

I am not entirely shocked by the result moving that way; benchmarking is a
nasty black art, and small tests often show different results to large tests.

        Daniel

-- 
✣ Daniel Pittman            ✉ daniel at rimspace.net            ☎ +61 401 155 707
               ♽ made with 100 percent post-consumer electrons


More information about the Melbourne-pm mailing list