性能测试
Case1:求数据集中某个字段的最大值
// 常规方法
func NormalIDMax(records []Record) int64 {
max := int64(math.MinInt64)
for _, r := range records {
if r.ID > max {
max = r.ID
}
}
return max
}
// linq方法
func LinqIDMax(records []Record) int64 {
return linq.From(records).Select(func(i interface{}) interface{} {
return i.(Record).ID
}).Max().(int64)
}
benchmark 结果如下
从上图可以看出,常规方法的速度是 linq 的110倍左右,linq进行了大量的内存分配操作,不慢才有鬼了