You are comparing two different types here, double vs a 32 bit integer, and program starting time should be excluded.
Something like:
In playground:
Smalltalk garbageCollect.
[ 0 to: 16r0FFFFFFF do: [ :x | ] ] timeToRun.
��� try switch the 0 to 0.0 to have the iterations be on a float, leads to much slower time���
C++ (compile with -std=c++11)
#include <iostream>
#include <chrono>
int main(){
using namespace std::chrono;
auto start = high_resolution_clock::now();
for(uint32_t x{0}; x <= 0x0FFFFFFF; ++x){ }
auto end = high_resolution_clock::now();
auto ms = duration_cast<milliseconds>(end - start).count();
std::cout
<< "time used: "
<< ms
<< "ms"
<< std::endl;
}
Best regards,
Henrik
From: Pharo-users [mailto:pharo-users-bounces@lists.pharo.org]
On Behalf Of Dimitris Chloupis
Sent: Saturday, December 17, 2016 1:16 PM
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
Subject: [Pharo-users] [Stupid Benchmarks] C++ vs Pharo
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.