( bocs | 2008. 12. 20., szo – 09:28 )

Kíváncsi lettem a c++ / java sebesség viszonyra windows-on.
A scimark2.0a tesztet használtam, aminek van c és java változata is. A c verziót agresszív optimalizációval, 2005-ös visual c++-al forgattam le, persze release módban. A java-hoz a legújabb Server VM-et használtam. Az eredmény számomra egy kicsit meglepő lett.

Hardware: Pentium4 3GHz Prescott HyperThreading on 1MB L2 cache


    test                  java result [MIPS]   c result [MIPS]
------------------------  ------------------   ----------------
1.scimark2 in-cache          324 [100%]            554 [171%]
2.scimark2 out-of-cache      306 [100%]            296 [ 97%]

Tehát ha olyan problémánk van, ami befér a cache-be, akkor a c-s megoldás még mindig durván jobb (70%-kal). Ha viszont out-of cache problémánk van, akkor a Java gyorsabb is lehet.

Példa java kimenet:

java -server jnt.scimark2.commandline -large
 
SciMark 2.0a
 
Composite Score: 306.32828805024263
FFT (1048576): 41.23158044036079
SOR (1000x1000): 624.9202988545162
Monte Carlo : 129.17972951336836
Sparse matmult (N=100000, nz=1000000): 362.0933434006447
LU (1000x1000): 374.2164880423233
 
java.vendor: Sun Microsystems Inc.
java.version: 1.6.0_11
os.arch: x86
os.name: Windows XP
os.version: 5.1