This is exactly why I asked a day or two ago if there has been a quantitative performance study/Benchmarking study done, but nobody seems to have the time to contribute to it. Are we expected to mindlessly adopt whatever "New" technology is doled out without quantitative proof of its degree of goodness? Agreed there are features that are not even available in other languages, but for common and often used features should we as engineers not ask "Exactly how fast is golang vs say Python/JS?" or even C as this case states.
If a verifiable (unbiased) study is already done and published, I'd greatly appreciate it if someone can post the link. If anyone wants to contribute to a research paper, I'd love to get started as well and can volunteer with creating the Python benchmarking routines initially in my free time. Contributors can recreate the same benchmarking routines in C, golang, JS <<add>>. Do let me know if anyone has second thoughts about the study, can devote time for it or has moneybags for sponsoring such a study Regards Milind On Sun, Feb 3, 2019 at 11:53 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.