testing 是go自带的一个轻量级的测试框架,主要有三个用途:单元测试(Test),基准测试(Benchmark)以及示例测试(Example)。
起因
写go也有几个月了,一直没太关注类似 benchmark
之类的性能分析工具,只知道埋头写业务代码。直到前几天,工作上的一个项目遇到了性能瓶颈,需要分析一下原因,就用到了 benchmark
。一顿分析,终于发现了程序中的”性能消耗大户“,颇有成就感。
测试case准备
平时写代码的过程中,会经常写一些 print
或者 debug
函数,谁又能想到,这些 print
偷偷摸摸的消耗了多少 CPU
和 内存资源呢?
AES对称加密是业务代码中经常会用到的一种加密方式,但是编码习惯如果不好,或者测试代码忘了删,就会导致加密性能急剧下降。
大师兄写的AES加密函数
func AesEncryptA(aesKey, IV, origin []byte) []byte {
block, err := aes.NewCipher(aesKey)
if err != nil {
return nil
}
blocksize := block.BlockSize()
blockMode := cipher.NewCBCEncrypter(block, IV)
originData := PKCS5Pading(origin, blocksize)
crypted := make([]byte, len(originData)