偽三元表示式 效能分析案例
如何去分析一個 func 的三元表示式的效果比 map 的方式更加效能高? Q1: benchmark 好像也看不出什麼,可能例子太簡單的原因?感謝 樓下朋友指出問題哈 Q2 string 物件和 interface 斷言居然也沒什麼消耗差距。
package main
import "testing"
func ternary(x int) string {
if x > 0 {
return "a"
}
return "b"
}
func TernaryInterface(statement bool, a, b interface{}) interface{} {
if statement {
return a
}
return b
}
func BenchmarkTernaryInterface(b *testing.B) {
var y string
for i := 0; i < b.N; i++ {
y = TernaryInterface(1 > 0, "a", "b").(string)
}
_ = y
}
func BenchmarkTernaryWithFunc1(b *testing.B) {
var y string
for i := 0; i < b.N; i++ {
y = ternary(1)
}
_ = y
}
func BenchmarkTernaryMap1(b *testing.B) {
var y string
for i := 0; i < b.N; i++ {
y = map[bool]string{true: "a", false: "b"}[1 > 0]
}
_ = y
}
go test -bench=. -benchmem -cpu 1,2,4,8
goos: darwin
goarch: amd64
BenchmarkTernaryInterface 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryInterface-2 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryInterface-4 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryInterface-8 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryWithFunc1 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryWithFunc1-2 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryWithFunc1-4 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryWithFunc1-8 2000000000 0.32 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryMap1 20000000 103 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryMap1-2 20000000 104 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryMap1-4 20000000 102 ns/op 0 B/op 0 allocs/op
BenchmarkTernaryMap1-8 20000000 102 ns/op 0 B/op 0 allocs/op
PASS
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 正規表示式案例分析 (二)
- python if三元表示式如何使用Python
- python -三元表示式、列表生成式、字典生成式Python
- python-三元表示式的實現Python
- 遞迴、三元表示式、生成式(列表,字典)、匿名函式遞迴函式
- Day 13 迭代器 三元表示式 列表生成式 字典生成式 生成器 遞迴遞迴
- 正規表示式效能優化的探究優化
- 遞迴函式、演算法之二分法、三元表示式、各種生成式、匿名函式遞迴函式演算法
- Css 偽類/偽類物件使用整理_使用案例CSS物件
- 效能分析(4)- iowait 使用率過高案例AI
- 深入正規表示式(3):正規表示式工作引擎流程分析與原理釋義
- 【效能測試】常見的效能問題分析思路(二)案例&技巧
- 正規表示式環視概念與用法分析
- 表示式
- 深入分析正規表示式的子模式模式
- 公有云(AWS)上的生產環境效能分析案例
- 中綴表示式轉字尾表示式
- LGWR寫操作會導致效能全域性卡頓案例分析
- 效能分析(2)- 應用程式 CPU 使用率過高案例
- MySQL全面瓦解25:構建高效能索引(案例分析篇)MySql索引
- JavaScript 表示式JavaScript
- Cron 表示式
- cron表示式
- lambda 表示式
- lambda表示式
- el 表示式
- 表示式樹
- hadoop+spark偽分散式HadoopSpark分散式
- Golang閉包案例分析與普通函式對比Golang函式
- 中綴表示式轉為逆波蘭表示式
- 觸控式螢幕響應速度效能分析
- 清華尹成帶你實戰GO案例(63)Go 正規表示式Go
- 【Java新特性】Lambda表示式典型案例,你想要的的都在這兒了!!Java
- Oracle查詢錯誤分析:ORA-01791:不是SELECTed表示式Oracle
- 不學無數——Mybatis解析判斷表示式原始碼分析MyBatis原始碼
- javascript-函式表示式JavaScript函式
- 函式表示式–遞迴函式遞迴
- “正規表示式”應當稱為“規則表示式”