Also the go program is most likely using 64 bit math. Use int32 to compare it correctly.
> On Feb 3, 2019, at 12:31 PM, Robert Engels <reng...@ix.netcom.com> wrote: > > Don’t use rtdsc in the C program use gettimeofday to ensure you are comparing > the same. > >> On Feb 3, 2019, at 12:22 PM, Miki Tebeka <miki.teb...@gmail.com> wrote: >> >> 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. > -- > 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. -- 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.