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