[Benchmark Tool] How long does it take your CPU to process map data?

greatnoob

Senior member
Jan 6, 2014
968
395
136
Hey guys,

this is a program I wrote to automate a couple of things.

1) plots points of NSW's public transport system to a 4k res jpeg file
2) converts CSV files to a SQLite database and
3) uses a crap load of memory on my system!

This is a cut back version of the program I wrote (the one I have uses 16gb of memory all at once!) and you'll need:

1) Java 8 or JRE 7
2) 8gb of memory minimum (uses around 4gb of memory)

Download benchmark from here:

For JRE 8 (Latest Java):
https://mega.co.nz/#!9ph3gYbI!6MW-rLF7tEg9ojeCOyox-mZNX1pGAr9W-jhiMezmprY

For older version JRE 7:
https://mega.co.nz/#!cgASBS6b!7gr9dAciOaN3AkHOcJILITYPKhLVoANtulYb7LVlrbk


Simply double click Run.bat and after the "Press enter to continue.." message pops up copy and paste the contents of output/log.txt here.

It generates a jpeg file of Sydney's bus and train stops as well, so bonus!

This is my result on an i5 4460 @ 3.2ghz (turbo 3.4ghz two cores and 3.2ghz all cores) with 32gb (2x16 HyperX + 2x16gb Adata sticks) of DDR3 RAM at 1333mhz and 7200rpm 1TB WD Blue HDD (JRE 8):
Code:
============= THREADING TEST =============
(104.37448ms)routes: 899 rows, 8 columns
(603.7019ms)stops: 27229 rows, 9 columns
(1217.302ms)trips: 87403 rows, 8 columns
(20811.691ms)shapes: 3803971 rows, 5 columns
============= PLOT TEST =============
scale=1.0986698634508292,-35.2085601877161,-32.0465331388348
scale=0.9826794318024322,149.540032207472,152.1758035916
============= TOTAL: 6.588473320007324s =============
============= TOTAL: 27.40164566040039s =============
Started JDBMC driver
============= CSV to SQL TEST =============
Processing routes
Processing trips
Processing shapes
Processing stops
============= TOTAL: 26.937944s =============


Benchmark Total: 54.339590072631836s

i5 2410m 2.3ghz (2.9ghz single, 2.7ghz two cores) with 4gb of 1333mhz DDR3 RAM and a 750gb 5400rpm Toshiba (?) HDD using -Xmx1512m parameter. (JRE 8):

Code:
============= THREADING TEST =============
(33.708706ms)routes: 899 rows, 8 columns
(653.17487ms)stops: 27229 rows, 9 columns
(1336.2593ms)trips: 87403 rows, 8 columns
(31031.19ms)shapes: 3803971 rows, 5 columns
============= PLOT TEST =============
scale=1.0986698634508292,-35.2085601877161,-32.0465331388348
scale=0.9826794318024322,149.540032207472,152.1758035916
============= TOTAL: 45.970481872558594s =============
============= TOTAL: 77.00313568115234s =============
Started JDBMC driver
============= CSV to SQL TEST =============
Processing routes
Processing trips
Processing shapes
Processing stops
============= TOTAL: 177.31178s =============


Benchmark Total: 254.3149185180664s
 
Last edited:

greatnoob

Senior member
Jan 6, 2014
968
395
136
that's a negative on java7-71.

I'll take a stab in the dark and say JDK 8 compiled binaries *might* work with JRE 7, worth a shot I guess

EDIT: Nope doesn't work! Will upload a JDK 7 compiled jar soon!
 
Last edited:
Dec 30, 2004
12,553
2
76
only uses one thread? :)

by the way, I need to point out that it's silly I was told "before coding for multi-core you should optimize your algorithm". It's hard to get an 8-fold improvement by "optimizing" my algorithm. Easier to just crunch in parallel.
 

greatnoob

Senior member
Jan 6, 2014
968
395
136
only uses one thread? :)

by the way, I need to point out that it's silly I was told "before coding for multi-core you should optimize your algorithm". It's hard to get an 8-fold improvement by "optimizing" my algorithm. Easier to just crunch in parallel.

Ok updated original post with JRE7 version! :thumbsup:

It is multithreaded where needed (CSV parsing), 1 thread per file. The jpeg renderer does not need to be multithreaded unless we're targeting insane resolutions (like 10x 4k) but it does run in its own thread separate from the others. CSV to SQL test is done using an sqlite library with no-disk cache (everything stored in memory for speed).
 
Last edited:

jhu

Lifer
Oct 10, 1999
11,918
9
81
only uses one thread? :)

by the way, I need to point out that it's silly I was told "before coding for multi-core you should optimize your algorithm". It's hard to get an 8-fold improvement by "optimizing" my algorithm. Easier to just crunch in parallel.

Isn't that optimizing the algorithm?
 

greatnoob

Senior member
Jan 6, 2014
968
395
136
Brute forced this on my laptop w/ an i5 2410m 2.3ghz (2.9ghz single, 2.7ghz two cores) and 4gb of 1333mhz DDR3 RAM using -Xmx1512m parameter. Results are pretty bad (JRE 8):

Code:
============= THREADING TEST =============
(33.708706ms)routes: 899 rows, 8 columns
(653.17487ms)stops: 27229 rows, 9 columns
(1336.2593ms)trips: 87403 rows, 8 columns
(31031.19ms)shapes: 3803971 rows, 5 columns
============= PLOT TEST =============
scale=1.0986698634508292,-35.2085601877161,-32.0465331388348
scale=0.9826794318024322,149.540032207472,152.1758035916
============= TOTAL: 45.970481872558594s =============
============= TOTAL: 77.00313568115234s =============
Started JDBMC driver
============= CSV to SQL TEST =============
Processing routes
Processing trips
Processing shapes
Processing stops
============= TOTAL: 177.31178s =============


Benchmark Total: 254.3149185180664s
 
Last edited:

greatnoob

Senior member
Jan 6, 2014
968
395
136
Anybody have results they could share here? I'd like to know where a desktop i3 lies