一个基于 SourceGenerator 生成 从 dbReader 转换为 class 数据的性能测试实验
好奇
SourceGenerator 出现开始,好几年了,虽然一直好奇用 SourceGenerator 生成代码 与 emit 等动态生成的代码会有多少差距,
但是一直特别懒,不想搞
其实 dapper aot 项目做了类似事情,不过功能特别积极,还引用了实验特性,所以还是想更为简单客观对比
本次乘着自己暂时性不懒了,做了一个基于 SourceGenerator 生成 从 dbReader 转换为 class 数据的测试
no generate code when
Generic Type (如果不用 emit 动态生成,还真无法处理未知类型 T)
Anonymous Type (SourceGenerator 生成时机要早于匿名类生成,所以还没机会生成)
generate code
具体怎么做的就这里不写了,感兴趣参考 https://github.com/fs7744/SlowestEM
生成的代码带有一定 db 结果动态类型处理,以此更接近实际使用
复制代码
测试结果
mock db, 避免 db 层实现性能和没有正确处理数据类型装箱拆箱问题
复制代码
复制代码
版权声明: 本文为 InfoQ 作者【八苦-瞿昙】的原创文章。
原文链接:【http://xie.infoq.cn/article/0734d4b13192fd9b9b01a4862】。文章转载请联系作者。
评论