wait, what?! the same code:
#include "stdio.h" #include "math.h" int main() { double res = 0.0; double x = 2.5; int Nmax = 10000000; for (int N=0; N<Nmax; N++) { for (int i=0; i<20; i++) { res += pow(x, i); } } printf("res = %g\n", res); } compiled with Clang is much faster? yes, I get: gcc -O2 c-code-sum.c -o c-code-sum_GCC -lm time ./c-code-sum_GCC res = 6.0633e+14 real 0m8.210s user 0m8.208s sys 0m0.000s and: clang -O2 c-code-sum.c -o c-code-sum_CLANG -lm time ./c-code-sum_CLANG res = 6.0633e+14 real 0m0.157s user 0m0.156s sys 0m0.004s So the question might be: what is CLANG doing? (and how to do this with Go?...) On Friday, August 4, 2017 at 6:04:01 PM UTC+10, Sebastien Binet wrote: > > > > On Fri, Aug 4, 2017 at 9:51 AM, Henrik Johansson <dahan...@gmail.com > <javascript:>> wrote: > >> Actually I get the same as the original program on my mac. >> >> time ./ccode >> sum=606329794183272.375000 >> ./ccode 0.17s user 0.00s system 98% cpu 0.170 total >> >> The Go version -O2 -Wall >> time ./pow >> sum=6.063297941832724e+14./pow 5.47s user 0.01s system 99% cpu 5.490 >> total >> > > interesting :) > > I have: > > $> gcc --version > gcc (GCC) 7.1.1 20170630 > Copyright (C) 2017 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > also interestingly, with clang: > $> clang --version > clang version 4.0.1 (tags/RELEASE_401/final) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /usr/bin > > $> time ./c-code > > real 0m0.001s > user 0m0.001s > sys 0m0.000s > > $> time ./c-code-sum > sum=606329794183272.375000 > > real 0m0.228s > user 0m0.227s > sys 0m0.000s > > I haven't looked at the assembly to see what's really going on for the GCC > version... > > -s > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.