偽三元表示式 效能分析案例
如何去分析一個 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
- [python]python三元表示式另類實現方式Python
- oracle SPA 效能分析案例Oracle
- Day 13 迭代器 三元表示式 列表生成式 字典生成式 生成器 遞迴遞迴
- SQL效能優化案例分析SQL優化
- [轉] Android 效能分析案例Android
- Oracle分析函式七——分析函式案例Oracle函式
- 正規表示式 基礎+使用案例解析
- Css 偽類/偽類物件使用整理_使用案例CSS物件
- 遞迴函式、演算法之二分法、三元表示式、各種生成式、匿名函式遞迴函式演算法
- 從案例分析如何優化前端效能優化前端
- 正規表示式效能優化的探究優化
- [譯]優秀的巢狀三元表示式(軟體編寫)(第十四部分)巢狀
- 資料庫Server效能問題分析案例一資料庫Server
- 深入正規表示式(3):正規表示式工作引擎流程分析與原理釋義
- 【效能測試】常見的效能問題分析思路(二)案例&技巧
- 【開發篇sql】 條件和表示式(四) 幾個常見的偽列SQL
- sql優化案例一:使用了表示式不會使用索引SQL優化索引
- 正規表示式環視概念與用法分析
- 從詞法分析到正規表示式(1)詞法分析
- 從詞法分析到正規表示式(2)詞法分析
- 效能分析(4)- iowait 使用率過高案例AI
- java效能優化方案2——避免使用正規表示式Java優化
- 使用公用表表示式(CTE)WITH AS提高sql效能,with as【未完待續】SQL
- 用三元組連結串列表示的稀疏矩陣類矩陣
- 表示式
- 正規表示式exec()函式只有第一執行有效分析函式
- python--表示式(運算表示式)Python
- 【JavaEE】JSP表示式--EL表示式用法JavaJS
- 深入分析正規表示式的子模式模式
- 公有云(AWS)上的生產環境效能分析案例
- LGWR寫操作會導致效能全域性卡頓案例分析
- 清華尹成帶你實戰GO案例(63)Go 正規表示式Go