Ich verbesserte den JIT-compiler von der L1VM. Den Code für Berechnungen mit Fließkommazahlen schrieb ich neu. Das hat große Auswirkungen auf die Laufzeiten.

Hier ist das Ergebnis:

Fließkomma Benchmark

C Programm
==========
$ time ./double-test
r: 704000000001.000000

real	0m27,411s
user	0m27,347s
sys	0m0,012s
L1VM - nojit
============
$ time l1vm-jit prog/jit-test-double-2-nojit -q
704000000001.0000000000

real	1m22,761s
user	1m22,680s
sys	0m0,036s
L1VM - JIT-compiler
===================
$ time l1vm-jit prog/jit-test-double-2 -q
704000000001.0000000000

real	0m30,342s
user	0m30,327s
sys	0m0,008s

Neu: ich habe hier die Ergebnisse für den Integer (Ganzzahlen) Benchmark:

Integer Benchmark

C Programm
==========
$ time ./int-test
r: -5740231991128654848
d: 2
e: 63
f: 61

real	0m35,139s
user	0m35,131s
sys	0m0,000s
L1VM - nojit
============
$ time vm/l1vm-jit prog/jit-test-nojit -q
-5740231991128654848
2
63
61

real	0m52,466s
user	0m52,445s
sys	0m0,012s
L1VM - JIT-compiler
===================
$ time vm/l1vm prog/jit-test -q
-5740231991128654848
2
63
61

real	0m43,644s
user	0m43,607s
sys	0m0,028s
Faktoren zu C:       1,0
L1VM - nojit:        1,5
L1VM - JIT-compiler: 1,24

Wie man sieht ist der JIT-compiler Code recht schnell.

Hier ist das Archiv mit den Benchmarks: L1VM-JIT-benchmark-02