mirror of https://github.com/golang/go.git
errors: improve performance of New
See Issue #29382 and Issue #30468. Improvements in this CL: name old time/op new time/op delta New-8 352ns ± 2% 225ns ± 5% -36.04% (p=0.008 n=5+5) Improvements together with moving to 1 uintptr: name old time/op new time/op delta New-8 475ns ± 3% 225ns ± 5% -52.59% (p=0.008 n=5+5) Change-Id: I9d69a14e5e10a6498767defb7d5f26ceedcf9ba5 Reviewed-on: https://go-review.googlesource.com/c/go/+/167401 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
5402854c35
commit
8bf18b56a4
|
|
@ -5,12 +5,17 @@
|
|||
// Package errors implements functions to manipulate errors.
|
||||
package errors
|
||||
|
||||
import "runtime"
|
||||
|
||||
// New returns an error that formats as the given text.
|
||||
//
|
||||
// The returned error contains a Frame set to the caller's location and
|
||||
// implements Formatter to show this information when printed with details.
|
||||
func New(text string) error {
|
||||
return &errorString{text, Caller(1)}
|
||||
// Inline call to errors.Callers to improve performance.
|
||||
var s Frame
|
||||
runtime.Callers(2, s.frames[:])
|
||||
return &errorString{text, s}
|
||||
}
|
||||
|
||||
// errorString is a trivial implementation of error.
|
||||
|
|
|
|||
Loading…
Reference in New Issue