CYQ.Data 批量添加数据性能测试(每秒千、万)

今天有网友火晋地同窗进了CYQ.Data官方群了,他正在折腾了一个各大ORM性能测试的比较的软件,以下图数据库

折腾的种类也很多:编程

 

感受这软件折腾的不错~~~值的期待~~~框架

另外,他指出CYQ.Data 在他的软件里表现不佳~~~~函数

因此我要了他的测试实例看看是怎么写的测试代码:性能

测试的过程,大致是开了N个线程,循环N次执行这样的函数。测试

找到表现不佳的缘由,并解决:编码

中间纷纷绕绕的讲了一些各大ORM测试的实例编写不一样问题,不过有一句,倒引发了个人注意,说平均400毫秒左右。spa

因而我本地测试了一下,结果找出AOP读取配置文件的一个小BUG,这个小BUG在每次new MAction时产生个被捕获的小异常,这个小异常不影响使用,但会占用2毫秒以上时间~~~线程

因此整个评测都是不断的new MAction的状况,就是大事件了,这就是总体评测都不佳的缘由了。code

 

OK,修正这个小Bug后,下面来演示一下批量插入功能:

看看1万条数据,插入须要多长时间:

数据库为MSSQL 2005 CPU为i3,4G内存,数据表Consumer共4个字段。

每一个示例先后都会truncate table  Consumer;

 

第一种编码方法:经过不断的new MAction来实现插入,1万条用了6秒多,平均每秒插入1600条左右:

 

 

 

 

第二种编码方法:把for往里面移动,先不开启事务,1万条用了4秒多,平均每秒插入2500条左右

 


 

 

第三种编码码方式,开启启事务呢,1万条用了2秒多,平均每秒插入4000条左右:

 

 

 

第四种编码方式:使用MDataTable的实现批量插入,1万条用了0.6秒多,平均每秒插入2万条左右:

 

 

事实上,时间是花在数据的实体转Table的过程,若是把这一块时间分出,只计算数据库批量插入的时间:

10万条用了0.8秒多,平均每秒插入10万条以上:

 

 

 

总结:

今天的测试,仅是作为样式供参考,不一样的编码方式,实际上产生的性能点不一样的,根据项目须要编程才是重点。

从07年开始写ORM框架,大大小小的框架写过很种风格,但真正的精华做品,却仅此一种。

另外其它多种ORM类型的比较,就等火晋地同窗之文章了。

相关文章
相关标签/搜索