Yup. Using int32 in Go reduces the difference to 1.5. Thanks

On Sunday, February 3, 2019 at 8:35:46 PM UTC+2, Robert Engels wrote:
>
> 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 <ren...@ix.netcom.com 
> <javascript:>> 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....@gmail.com <javascript:>> 
> 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...@googlegroups.com <javascript:>.
> 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...@googlegroups.com <javascript:>.
> 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.

Reply via email to