Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Fiehn Lab - JAVA vs C++ Benchmark Scroll Search ... Home Members Projects Cheminformatics & Compound ID Databases & Software Development Novel Technologies Publications Events Fiehnlab Seminars Instrumentation Administration Login Home Members Projects Cheminformatics & Compound ID Databases & Software Development Novel Technologies Publications Events Fiehnlab Seminars Instrumentation Administration Login Search ... JAVA vs C++ Benchmark Metabolomics Peak_Alignment mzmine xcms MS Adduct Calculator Structure Elucidation LipidAnalysis Irganox RosettaStone Mass Spectral Imaging LIMS DTD-GC-TOF-MS Flux-analysis ChemoInformatics Tools CDK Databases Concepts Isomers Stereoisomers Tautomers 3D-Conformer Descriptors Substructure Mining Visualization Statistics Tools Concepts Feature_Selection Regression Classification 4Metabolomics ROC Curves OPLS vs PLSDA vs PLS Quick Science External Links Literature Review Boiling_Points Chemometrics FT-MS NMR MS Chemical Ionization GCxGC INCHI DENDRAL Multicapillary GC MS Interpretation MOLGEN Orbitrap HPLC Statistics QSAR COSMO QSPR Retention_Index Isotopic_Pattern Experimental_Design Thermal_Desorption Fast_GC MS_Simulation Databases Structure_Elucidation Feature Selection Natural_Products PAH Stereoisomers INVERSE-QSAR-QSPR Collector Benchmark Blast Benchmark Makefile JAVA vs C++ Benchmark ArrayList Core-i7-vs-Opteron RamDisk 7ZIP-Benchmark Programming Cell_Counting ClusterSupport Oracle Statistica Allow access to helpfiles stored on network Statsoft Statistica Beware of 101 Teaching Publications Update 2009 JAVA 1.6 reaches ~95% performance of C++ Is JAVA fast? Yes, since introduction of SSE and SSE2 streaming commands and other major enhancements, JAVA 1.5 is closing the gap. The best proof is JAKE2 a resource and CPU hungry 3D game engine. Some years ago such an approach would have been laughable. However the SciMark benchmarks show, that up to 70% of the C++ speed can be reached by JAVA. But there are major differences between operating systems and versions. For the fastest implementation, you should download the free server version of SUNs JAVA engine. This will speed up your code up to 40%. Hence every command must include "java -server" as run command. Is it a good benchmark? Yes because it contains results from diverse platforms and different CPUs and the code did not change since then. Is it a bad benchmark? Yes, because it only checks for floating point computational speed (good for science, games, applications) and it is only single-threaded (a big NO NO, as it can run only one one CPU core). Compiler optimization and benchmarks The free MS Visual C++ Express compiler was compared against the JAVA compiler v1.5 (JAVAC optimization with -O) For comparison a 25% higher clocked Intel CPU result was included, with Intel LINUX C++ compiler. SCIMARK AMD compiler options SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark Opteron 2.8 GHz (single threaded programs) WIN XP2 WIN XP2 MS Visual C++ Opteron 2.8 GHz WIN XP2 JAVA 1.5 server Opteron 2.8 GHz LINUX Intel C++ Xeon 3.6 GHz fast precise SSE fast SSE precise SSE2 fast SSE2 precise MAX Small Problem Composite Score: 802.03 811.34 815.43 819.47 708.29 728.52 819.47 584 943 FFT Mflops: 734.42 729.5 744.13 734.42 660.7 676.32 744.13 457 521 SOR Mflops: 868.39 927.31 868.39 920.23 822.43 893.76 927.31 906 1092 MonteCarlo Mflops: 163.63 164.38 184.75 184.75 166.78 165.96 184.75 80 447 Sparse matmult Mflops: 762.49 773.29 773.29 776.72 748.98 748.98 776.72 439 832 LU Mflops: 1481.24 1462.2 1506.57 1481.24 1142.54 1157.55 1506.57 1040 1827 The results together with the JAVA, Assembler and C++ EXE files can be downloaded here. A comprehensive list of different JVM and compiler speeds for several problems can be found at shudo.net. A bunch of other sites comparing JAVA versus C on different platforms and with different JVMs can be found google. The comprehensive JAVAGRANDE benchmarks can be found at EPCC. Another point of interest may be the C# (C-Sharp) version of SciMark, which is slower than JAVA giving a score of 476 on this machine. Update 2009 with the new JAVA 1.6 (64-bit) compiler The comparison is not complete and not fair. For JAVA 1.6 the SUN amd64 compiler was used, for C the MS Visual C++ compiler with SSE2 but in 32 bit mode was used. The machine was a Core i7 3GHz @ 3.4GHz and 12 GByte DDR3 RAM running VISTA 64 bit. No other optimizing compiler (Intel, PathScale) was included. The JAVA Benchmark results: java.exe -server -Xms1600m -Xmx1600m -XX:+AggressiveHeap -cp ..\.. jnt.scimark2.commandline SciMark 2.0a Composite Score: 1265.1385420292804 FFT (1024): 795.7301642787169 SOR (100x100): 1449.3832764603712 Monte Carlo : 504.104115638433 Sparse matmult (N=1000, nz=5000): 1077.0090318677676 LU (100x100): 2499.4661219011127 java.vendor: Sun Microsystems Inc. java.version: 1.6.0_17 os.arch: amd64 os.name: Windows Vista os.version: 6.0 The C++ Benchmark results (Microsoft C++) C:\bench\scimark\Scimark2-AMD\Release\asm>.\SSE2precise\Scimark2-AMD.exe ** ** ** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark ** ** for details. (Results can be submitted to This email address is being protected from spambots. You need JavaScript enabled to view it. ) ** ** ** Using 2.00 seconds min time per kenel. Composite Score: 1318.78 FFT Mflops: 1202.92 (N=1024) SOR Mflops: 1460.37 (100 x 100) MonteCarlo: Mflops: 232.21 Sparse matmult Mflops: 1082.79 (N=1000, nz=5000) LU Mflops: 2615.58 (M=100, N=100) The GNU C++ compiler (SSE3 tested but slower) Cygwin gnu c compiler CFLAGS = -g -m32 -O3 -ffast-math -msse2 -mfpmath=sse Thread model: posix gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) $ ./scimark2.exe ** ** ** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark ** ** for details. (Results can be submitted to This email address is being protected from spambots. You need JavaScript enabled to view it. ) ** ** ** Using 2.00 seconds min time per kenel. Composite Score: 1069.87 FFT Mflops: 882.49 (N=1024) SOR Mflops: 1101.12 (100 x 100) MonteCarlo: Mflops: 297.52 Sparse matmult Mflops: 1126.05 (N=1000, nz=5000) LU Mflops: 1942.15 (M=100, N=100) Download archive with JAVA, C++, ASM, EXCEL code here [ZIP]. For a more complete coverage of language benchmarks go to the Computer Language Benchmarks Game which covers 30 different modern languages. The overall speed can be greatly improved by compiling specialized libraries for mathematical functions into the package. see JAVA numerics see Intel Math Kernel Library see AMD Core Math Library (ACML) (c) 2016 Fiehn Lab