I L K B Y T E

Go neden bu işlemde çok yavaş?

2
Hakan E.
28.08.2018 16:23

Aşağıda 100000 loopta stringleri birleştirme işleminde go bu işi 15-20sn’de yaparken python’da 0.1 sn sürüyor bunun nedeni ne olabilir?

Go Kodu

var sStmt string = "Hi there "  
for i := 0; i < 100000; i++ {  
 sStmt += "(" + strconv.Itoa(i) +  "," + strconv.Itoa(i) + "),"  
}

Python Kodu

a = "Hi there "
for i in range(100000):
    a += "(" + str(i) + "," + str(i) + "),"

1 Yorum

2
Barış E.
28.08.2018 16:33
var a strings.Builder
a.WriteString("Hi there ")
for i := 0; i < 100000; i++ {
  a.WriteRune('(')
  a.WriteString(strconv.Itoa(i))
  a.WriteRune(',')
  a.WriteString(strconv.Itoa(i))
  a.WriteString("),")
}
return a.String()

Yukarıda ki kodu kullanarak string build etmelisin. Bu işlemi python arka planda kendisi yaptığı için senin kullanımında python daha hızlı çıkıyor.

  • Teşekkürler, çok yardımcı oldu
    Hakan E. - 2018-08-28 16:38:45

Cevabınız