stupidgcm: NewChacha20poly1305: avoid slice append
I noticed that growslice() shows up in the cpuprofile. Avoiding slice append for the private jey copy gives a 0.6% speedup: gocryptfs/internal/speed$ benchstat old new name old time/op new time/op delta StupidXchacha-4 5.68µs ± 0% 5.65µs ± 0% -0.63% (p=0.008 n=5+5) name old speed new speed delta StupidXchacha-4 721MB/s ± 0% 725MB/s ± 0% +0.63% (p=0.008 n=5+5)
This commit is contained in:
parent
39b1070506
commit
d9510d0c0b
@ -39,9 +39,12 @@ func NewChacha20poly1305(key []byte) *stupidChacha20poly1305 {
|
|||||||
if len(key) != chacha20poly1305.KeySize {
|
if len(key) != chacha20poly1305.KeySize {
|
||||||
log.Panicf("Only %d-byte keys are supported, you passed %d bytes", chacha20poly1305.KeySize, len(key))
|
log.Panicf("Only %d-byte keys are supported, you passed %d bytes", chacha20poly1305.KeySize, len(key))
|
||||||
}
|
}
|
||||||
|
// private copy
|
||||||
|
key2 := make([]byte, chacha20poly1305.KeySize)
|
||||||
|
copy(key2, key)
|
||||||
return &stupidChacha20poly1305{
|
return &stupidChacha20poly1305{
|
||||||
stupidAEADCommon{
|
stupidAEADCommon{
|
||||||
key: append([]byte{}, key...), // private copy
|
key: key2,
|
||||||
openSSLEVPCipher: _EVP_chacha20_poly1305,
|
openSSLEVPCipher: _EVP_chacha20_poly1305,
|
||||||
nonceSize: chacha20poly1305.NonceSize,
|
nonceSize: chacha20poly1305.NonceSize,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user