Skip to content

Instantly share code, notes, and snippets.

@mcihad
Created August 29, 2018 19:03
Show Gist options
  • Select an option

  • Save mcihad/59b793e51a1c7610153078bbc1e5173d to your computer and use it in GitHub Desktop.

Select an option

Save mcihad/59b793e51a1c7610153078bbc1e5173d to your computer and use it in GitHub Desktop.
Go String Birleştirme Testi
package main
import (
"bytes"
"fmt"
"strconv"
"strings"
"time"
)
func Deneme(n int) string {
start := time.Now()
var a strings.Builder
a.WriteString("Hi there ")
for i := 0; i < n; i++ {
a.WriteRune('(')
a.WriteString(strconv.Itoa(i))
a.WriteRune(',')
a.WriteString(strconv.Itoa(i))
a.WriteString("),")
}
s := a.String()
elapsed := time.Since(start)
fmt.Printf("%d adet deneme -> %s\n", n, elapsed)
return s
}
func Deneme2(n int) string {
start := time.Now()
s := []string{"Hi There "}
for i := 0; i < n; i++ {
s = append(s, fmt.Sprintf("(%d,%d),", i))
}
ret := strings.Join(s, "")
elapsed := time.Since(start)
fmt.Printf("%d adet deneme -> %s\n", n, elapsed)
return ret
}
func Deneme3(n int) string {
start := time.Now()
var buffer bytes.Buffer
buffer.WriteString("Hi There")
for i := 0; i < n; i++ {
buffer.WriteString(fmt.Sprintf("(%d,%d),", i))
}
ret := buffer.String()
elapsed := time.Since(start)
fmt.Printf("%d adet deneme -> %s\n", n, elapsed)
return ret
}
func main() {
fmt.Println("----------------------------------------------")
Deneme(100000)
Deneme(1000000)
Deneme(10000000)
fmt.Println("----------------------------------------------")
/**
100000 adet deneme -> 16.9903ms
1000000 adet deneme -> 169.8935ms
10000000 adet deneme -> 1.9048308s
*/
Deneme2(100000)
Deneme2(1000000)
Deneme2(10000000)
/**
100000 adet deneme -> 36.976ms
1000000 adet deneme -> 413.2154ms
10000000 adet deneme -> 5.4421465s
*/
fmt.Println("----------------------------------------------")
Deneme3(100000)
Deneme3(1000000)
Deneme3(10000000)
/**
100000 adet deneme -> 40.9725ms
1000000 adet deneme -> 404.7615ms
10000000 adet deneme -> 4.0455037s
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment