Hi,

I'm comparing two loops in Go and C. The Go code on my machine is about 3 
times slower than C. I know C can be faster but didn't think it'll be that 
faster. Any ideas what's making the Go code slower?

You can see the code at https://github.com/tebeka/go-c-loop

Go Code:
package main


import (
 "fmt"
 "os"
 "strconv"
 "time"
)


func main() {
 n, _ := strconv.Atoi(os.Args[1])
 m, _ := strconv.Atoi(os.Args[2])


 sum := int(0)
 start := time.Now()
 for i := 0; i < 10000000; i++ {
 if i%n != m {
 sum += n
 }
 }


 fmt.Println(time.Now().Sub(start).Seconds(), sum)
}



C Code
#include <stdio.h>
#include <unistd.h>
#include <x86intrin.h>




int main(int argc,char** argv) {
            unsigned long long ull0,ull1;
            unsigned int sum=0,n,m;


            sscanf(argv[1],"%d",&n);
            sscanf(argv[2],"%d",&m);


            ull0 = __rdtsc();
            for(int i=0; i<10000000; i++) {
                        if(i%n != m) {
                                    sum += n;
                        }


            }


            ull1 = __rdtsc();
            printf("%f %d\n",(ull1-ull0)/2.1e9,sum);
}



-- 
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.

Reply via email to