Don't defer.

This dropped (on my system) the Generate benchmark from about
285-330ns/op down to 244ns/op.  Yay!
This commit is contained in:
Bruce Marriner 2016-06-10 18:20:30 -05:00
parent 82eab22d0d
commit 94a47d42a7

View File

@ -54,7 +54,6 @@ func NewNode(node int64) (*Node, error) {
func (n *Node) Generate() ID { func (n *Node) Generate() ID {
n.Lock() n.Lock()
defer n.Unlock()
now := time.Now().UnixNano() / 1000000 now := time.Now().UnixNano() / 1000000
@ -72,10 +71,13 @@ func (n *Node) Generate() ID {
n.time = now n.time = now
return ID((now-Epoch)<<timeShift | r := ID((now-Epoch)<<timeShift |
(n.node << nodeShift) | (n.node << nodeShift) |
(n.step), (n.step),
) )
n.Unlock()
return r
} }
// Int64 returns an int64 of the snowflake ID // Int64 returns an int64 of the snowflake ID