在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
dao-benchmark项目介绍dao 性能测试,包含jpa,mybatis,beetlsql等Dao工具,测试了插入,修改,查询,翻页查询,orm查询等常用操作性能,以此来优化BeetlSQL性能 运行本例子
测试过程说明为了减少数据库对Dao测试带来影响,采用H2内存数据库,如下配置 spring: datasource: driver-class-name: org.h2.Driver password: '' schema: classpath:db/schema.sql url: jdbc:h2:mem:dbtest;DB_CLOSE_ON_EXIT=FALSE username: satest: count: 1000 target: beetlsql warmCount: 20mybatis-plus: #实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.ibeetl.dao.mybatis.entitybeetl: suffix: htmlbeetl-beetlsql: dev: falsebeetlsql: ds: datasource: basePackage: com.ibeetl.dao.beetlsql mutiple: datasource: datasource BeanchmarkApplication 是程序入口,启动后即可做测试,或者打开浏览器,用echart输出性能测试结果 @Beanpublic CommandLineRunner commandLineRunner(ApplicationContext ctx) { return args -> { if (args.length==0) { test(warmCount, false); test(testCount, true); logFile(target); // 测试完后退出 System.exit(0); } else { // 打开浏览器显示性能对比 openExplore(args); } };} 可以设定预热次数,以及是否记录日志。 测试完毕,自动打印每个测试的方法并记录到文件系统里,位于程序运行的result目录,每个文件内容如下 #jdbc,total=1000 tps:#Sun Jun 17 19:22:01 CST 2018testAdd=8695testExample=0testOrmQuery=0testPageQuery=18181testUpdateById=15873testUnique=142857
测试场景
增加新的Dao参考TestServiceConfig,提供一个TestServiceInterface接口实现 @Configurationpublic class DataSourceConfig { @Bean @ConditionalOnProperty(name = "test.target", havingValue = "beetlsql") public TestServiceInterface getBeetlSqlTestService() { return new BeetlSqlPerformaceTestService(); } @Bean @ConditionalOnProperty(name = "test.target", havingValue = "jpa") public TestServiceInterface getJpaTestService() { return new JpaPerformaceTestService(); }} 测试截图
测试结果说明测试结果,JDBC遥遥领先,BeetlSQL 是紧随其后,勉强能跟得上JDBC.对于全功能Dao框架来说,BeetlSQL表现无疑是最好的. TODO
|
请发表评论