/mobile Handheld Friendly website

÷

 Step 1 : Are the SML MLton programs faster? At a glance.

This chart shows 3 comparisons - Time-used, Memory-used and Code-used ~ speed and size.

Each chart bar shows, for one unidentified benchmark, how much the fastest SML MLton program used compared to the fastest C++ GNU g++ program.


Look at speed another way - look at a box plot of Time-used data.

 Step 2 : Are the SML MLton programs faster? Approximately.

This table shows 3 comparisons - Time-used, Memory-used and Code-used ~ speed and size.

Each table row shows, for one named benchmark, how much the fastest SML MLton program used compared to the fastest C++ GNU g++ program.

 SML MLton used what fraction? used how many times more? 
Benchmark Time Memory Code
 binary-trees±±
 partial-sums±±±
 fasta±±
 nsieve±±
 spectral-norm±±
 nsieve-bits±
 n-body±±
 pidigits±
 mandelbrot±1/2
 k-nucleotide18×±
 recursive±±
 reverse-complement±
 SML MLton used what fraction? used how many times more? 
Time-used  |-  |---  25% median  75%  ---|  -|
(CPU secs)±±±

± read the measurements and then read the program source code.

 Step 3 : Are the SML MLton programs faster? Measurements.

This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ≈ CPU Load ~ speed and size.

For each named benchmark, measurements of the fastest SML MLton program are shown for comparison against measurements of the fastest C++ GNU g++ program.

Program Source Code CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
 binary-trees 
SML MLton3.2045,760530  
C++ GNU g++4.476,996541  
 partial-sums 
SML MLton4.73740541  
C++ GNU g++4.05852531  
 fasta 
SML MLton22.752,8561323  
C++ GNU g++18.727881248  
 nsieve 
SML MLton3.0536,740367  
C++ GNU g++2.085,764313  
 spectral-norm 
SML MLton37.401,304444  
C++ GNU g++23.84900442  
 nsieve-bits 
SML MLton6.705,248488  
C++ GNU g++3.863,316494  
 n-body 
SML MLton27.277401327  
C++ GNU g++14.629321705  
 pidigits 
SML MLton3.252,236498  
C++ GNU g++1.661,052652  
 mandelbrot 
SML MLton6.04704457  
C++ GNU g++3.028961097  
 k-nucleotide 
SML MLton20.86163,3721068  
C++ GNU g++7.469,3041380  
 recursive 
SML MLton7.971,384453  
C++ GNU g++2.401,008566  
 reverse-complement 
SML MLton1.8280,060837  
C++ GNU g++0.5413,288810  
 regex-dna 
No program
C++ GNU g++1.142,9601588  

 Step 4 : Are there other SML MLton programs for these benchmarks?

Remember - those are just the fastest SML MLton and C++ GNU g++ programs measured on this OS/machine. Check if there are other implementations of these benchmark programs for SML MLton.

Maybe one of those other SML MLton programs is fastest on a different OS/machine.

 Step 5 : Are there other faster programs for these benchmarks?

Remember - those are just the fastest SML MLton and C++ GNU g++ programs measured on this OS/machine. Check if there are faster implementations of these benchmark programs for other programming languages.

Maybe one of those other programs is fastest on a different OS/machine.

 SML MLton : whole-program optimizing compiler 

MLton 20070826 (built Wed Aug 29 09:44:07 2007 on silver-star.cs.uchicago.edu)

Whole-Program Compilation in MLton (pdf slides)

Home Page: http://mlton.org/

Download: http://mlton.org/download/

Revised BSD license

  Home   Conclusions   License   Help