Gauche > Archives > 2015/04/24

2015/04/24 00:28:29 UTCえんどう
#
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
2015/04/24 00:49:23 UTC(び)
#
Gauche-uuid、文字列化がえらく非効率なコードだったんで書き換えたら、3倍くらいにはなった。もうちょっといけると思うけど、goとはたぶん勝負にならない。最後はlibuuid拡張に書き換えるだな。PR出す準備してる。
#
でも、このgoのコード、最後のuuidしか文字列化してないよね。
2015/04/24 02:42:50 UTCえんどう
#
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())
2015/04/24 02:55:17 UTCえんどう
#
uuid=5f5585e4-ea2c-11e4-93cf-a886ddadbdbb, dulation=4m5.250443412s
#
さすがに時間かかる。