{"push_id":1325748018,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"441502154fa5f78e93c9c7985fbea78a02c21f4f","before":"9828b7c468029d54e90846e5e2fc23fd6d39782a","commits":[{"sha":"441502154fa5f78e93c9c7985fbea78a02c21f4f","author":{"name":"David Crawshaw","email":"2f947ed2a8a0e631420d5b7d506da3091794bdac@golang.org"},"message":"runtime: remove defer from standard cgo call\n\nThe endcgo function call is currently deferred in case a cgo\ncallback into Go panics and unwinds through cgocall. Typical cgo\ncalls do not have callbacks into Go, and even fewer panic, so we\npay the cost of this defer for no typical benefit.\n\nAmazingly, there is another defer on the cgocallback path also used\nto cleanup in case the Go code called by cgo panics. This CL folds\nthe first defer into the second, to reduce the cost of typical cgo\ncalls.\n\nThis reduces the overhead for a no-op cgo call significantly:\n\n\tname       old time/op  new time/op  delta\n\tCgoNoop-8  93.5ns ± 0%  51.1ns ± 1%  -45.34%  (p=0.016 n=4+5)\n\nThe total effect between Go 1.7 and 1.8 is even greater, as CL 29656\nreduced the cost of defer recently. Hopefully a future Go release\nwill drop the cost of defer to nothing, making this optimization\nunnecessary. But until then, this is nice.\n\nChange-Id: Id1a5648f687a87001d95bec6842e4054bd20ee4f\nReviewed-on: https://go-review.googlesource.com/30080\nRun-TryBot: David Crawshaw <crawshaw@golang.org>\nTryBot-Result: Gobot Gobot <gobot@golang.org>\nReviewed-by: Ian Lance Taylor <iant@golang.org>","distinct":true,"url":"https://api.github.com/repos/golang/go/commits/441502154fa5f78e93c9c7985fbea78a02c21f4f"}]}
{"actor":{"display_login":"gopherbot"}}