#package main
import (
"code.google.com/p/go-uuid/uuid"
"time"
"fmt"
)
func main() {
count := 100000000
s := time.Now().Second()
var u uuid.UUID
for i := 0; i<count; i++ {
u = uuid.NewUUID()
}
e := time.Now().Second()
fmt.Printf("uuid=%s, dulation=%d\n", u.String(), e - s)
}
#$ go run ../uuid.go
uuid=b2679c71-ea18-11e4-a332-a886ddadbdbb, dulation=27
#Gauche-uuid、文字列化がえらく非効率なコードだったんで書き換えたら、3倍くらいにはなった。もうちょっといけると思うけど、goとはたぶん勝負にならない。最後はlibuuid拡張に書き換えるだな。PR出す準備してる。
#でも、このgoのコード、最後のuuidしか文字列化してないよね。
#package main
import (
"code.google.com/p/go-uuid/uuid"
"time"
"fmt"
)
func main() {
count := 100000000
s := time.Now()
var u string
for i := 0; i<count; i++ {
u = uuid.NewUUID().String()
}
e := time.Now()
fmt.Printf("uuid=%s, dulation=%d\n", u, e.Sub(s).String())
}
#$ go run ../uuid.go
uuid=74f9f92c-ea2a-11e4-9796-a886ddadbdbb, dulation=%!d(string=4m5.031103257s)
#うはまだバグあった fmt.Printf("uuid=%s, dulation=%s\n", u, e.Sub(s).String())
#uuid=5f5585e4-ea2c-11e4-93cf-a886ddadbdbb, dulation=4m5.250443412s
#さすがに時間かかる。