Merge pull request #2 from zeroZshadow/master
Fix UnmarshalJSON benchmark & Optimize MarshalJSON a little more
This commit is contained in:
commit
cd8e42350a
@ -127,7 +127,8 @@ func (f ID) Step() int64 {
|
||||
|
||||
// MarshalJSON returns a json byte array string of the snowflake ID.
|
||||
func (f ID) MarshalJSON() ([]byte, error) {
|
||||
buff := []byte("\"")
|
||||
buff := make([]byte, 0, 22)
|
||||
buff = append(buff, '"')
|
||||
buff = strconv.AppendInt(buff, int64(f), 10)
|
||||
buff = append(buff, '"')
|
||||
return buff, nil
|
||||
|
@ -44,26 +44,26 @@ func BenchmarkGenerate(b *testing.B) {
|
||||
}
|
||||
|
||||
func BenchmarkUnmarshal(b *testing.B) {
|
||||
|
||||
// Generate the ID to unmarshal
|
||||
node, _ := NewNode(1)
|
||||
id := node.Generate()
|
||||
bytes, _ := id.MarshalJSON()
|
||||
|
||||
var id2 ID
|
||||
|
||||
b.ReportAllocs()
|
||||
|
||||
b.ResetTimer()
|
||||
for n := 0; n < b.N; n++ {
|
||||
_ = id2.UnmarshalJSON(id.Bytes())
|
||||
_ = id2.UnmarshalJSON(bytes)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMarshal(b *testing.B) {
|
||||
|
||||
// Generate the ID to marshal
|
||||
node, _ := NewNode(1)
|
||||
id := node.Generate()
|
||||
|
||||
b.ReportAllocs()
|
||||
|
||||
b.ResetTimer()
|
||||
for n := 0; n < b.N; n++ {
|
||||
_, _ = id.MarshalJSON()
|
||||
|
Loading…
x
Reference in New Issue
Block a user