Hmm, this sounds wrong (C++ should be (a lot) faster on such micro benchmarks). You should exclude the executable startup time. In Pharo you should do [ .. ] timeToRun and something similar in C/C++.
On 17 Dec 2016, at 13:41, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
in multiplication pharo is around 2 times slower compared to C++
#include <stdio.h>
int main() { double x=1; for(double i; i<1000000000 ; ++i) { x = 0.1*i; }
return 1; }
time ./testMul 3.13 real 3.13 user 0.00 sys
time ./pharo Ephestos.image eval "|x| x := 1. 1 to: 1000000000 do:[:each| x := 0.1 * each]" 1 4.97 real 4.48 user 0.09 sys
On Sat, Dec 17, 2016 at 2:16 PM Dimitris Chloupis <kilon.alios@gmail.com> wrote: So I was bored and decided to test how fast pharo is compared to C++.
so I tested addition
C++ version:
#include <stdio.h>
int main() { double x=0; while(x<1000000000) { x = x+1; }
return 1; }
time ./test1 2.84 real 2.84 user 0.00 sys
Pharo version:
time ./pharo Ephestos.image eval "|x| x := 0. 1 to: 1000000000 do:[:each| x := x +1]" 1 2.09 real 1.94 user 0.08 sys
Pharo is +50% faster than C++ ... o_O ... that's suprising, I assume here Pharo VM probably does some kind of optimisation.