Jus*_*tin 6 sql-server testing performance orm ado.net
我使用面向方面编程(PostSHarp)创建了一个自定义ORM工具的原型,并实现了持久性无知(在编译时之前).现在,我尝试了解与使用纯DataReader和ADO.NET相比,它引入了多少开销.我做了一个测试用例 - 在MS SQL Server 2008和MySQL Community Edition中插入,读取,删除数据(大约1000条记录).我使用纯ADO.NET和我的自定义工具多次运行此测试.
我预计结果将取决于许多因素 - 内存,交换,CPU,其他进程,所以我多次运行测试(20-40).但结果真的出乎意料.他们在这些案件之间差别太大.如果只有一些极端值,我可以忽略它们(可能是交替出现或者像那样)但它们是如此不同以至于我确信我不相信这种测试.几乎一半的时间我的ORM表现出比纯ADO.NET好10%的性能,有时甚至是-10%.
有什么方法可以让这些测试可靠吗?我没有一台拥有大量内存的强大计算机,但也许我可以在某些测试中使MS SQL和MySQL或ADO.NET尽可能保持一致?那么记录的数量如何 - 更可靠,使用少量记录并运行更多次或其他方式?
你看过ORMBattle.NET吗?请参阅常见问题解答,有一些与测量特定ORM工具引入的性能开销相关的想法.测试套件是开源的.
关于你的结果:
PS我是ORMBattle.NET的作者之一,所以如果您对细节/可能的贡献感兴趣,可以直接与我联系(或加入ORMBattle.NET Google Groups).