func main() { // use [from/to/by] or [from/iterations] nFrom := flag.Uint64("from", 1e2, "start iterations from this number") nTo := flag.Uint64("to", 1e4, "run iterations until arriving at this number") nBy := flag.Uint64("by", 1, "increment each iteration by this number") nIncrements := flag.Uint64("iterations", 0, "number of iterations to execute") encodingType := flag.String("encoding", "string", "encode/decode as 'string', 'binary', 'binary-int', 'binary-varint'") flag.Parse(true) flag.Usage = func() { fmt.Printf("%s\n", os.Args[0]) flag.PrintDefaults() return } t0 := time.Now() nBytes := uint64(0) nIterations := uint64(0) encoderDecoder := getEncoder(*encodingType) startingLoop := newBigFloat(*nFrom) var endLoop *big.Float var incrementer *big.Float if *nIncrements > 0 { // using from/iterations flags fmt.Printf("encoding: %v from: %v iterations: %v\n", *encodingType, *nFrom, *nIncrements) incrementer = newBigFloat(1) n := newBigFloat(*nIncrements) endLoop = n.Add(n, startingLoop) } else { // using from/to/by flags fmt.Printf("encoding: %v from: %v to: %v by: %v\n", *encodingType, *nFrom, *nTo, *nBy) incrementer = newBigFloat(*nBy) endLoop = newBigFloat(*nTo) } for i := startingLoop; i.Cmp(endLoop) < 0; i = i.Add(i, incrementer) { nIterations++ nBytes += runTest(encoderDecoder, i) } t1 := time.Now() d := t1.Sub(t0) fmt.Printf("IO %s (%v nums) in %s (%s/s)\n", humanize.Bytes(nBytes), humanize.Comma(int64(nIterations)), d, humanize.Bytes(uint64(float64(nBytes)/d.Seconds()))) }
"encoding/binary" "fmt" "io/ioutil" "time" "github.com/attic-labs/noms/go/chunks" "github.com/attic-labs/noms/go/d" "github.com/attic-labs/noms/go/datas" "github.com/attic-labs/noms/go/dataset" "github.com/attic-labs/noms/go/types" "github.com/attic-labs/noms/go/util/profile" flag "github.com/tsuru/gnuflag" ) var ( count = flag.Uint64("count", 100000, "number of elements") blobSize = flag.Uint64("blobsize", 2<<24 /* 32MB */, "size of blob of create") ) const numberSize = uint64(8) const strPrefix = "i am a 32 bytes.....%12d" const stringSize = uint64(32) const boolSize = uint64(1) const structSize = uint64(64) func main() { profile.RegisterProfileFlags(flag.CommandLine) flag.Parse(true) buildCount := *count insertCount := buildCount / 50