DataVeryLite和Nhibernate性能对比
电脑型号:acer 4752g
电脑配置:
代码分享:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Debug.Listeners.Add(new ConsoleTraceListener()); 6 ShowExecuteTime("dataverylteBatch", () => DataVeryLiteInsertBatch()); 7 8 ShowExecuteTime("dataverylte", () => DataVeryLiteInsert()); 9 ShowExecuteTime("hibernate", () => HibernateInsert()); 10 Console.WriteLine("完成"); 11 Console.ReadKey(); 12 } 13 14 public static void HibernateInsert() 15 { 16 // 读取配置 17 var config = new Configuration().Configure("Database.xml"); 18 19 // 创建表结构 20 SchemaMetadataUpdater.QuoteTableAndColumns(config); 21 new SchemaExport(config).Create(false, true); 22 23 // 打开Session 24 var sessionFactory = config.BuildSessionFactory(); 25 using (var session = sessionFactory.OpenSession()) 26 { 27 // 插入 28 for (int i = 0; i < 1000; i++) 29 { 30 var user = new User(); 31 user.Name = "贼寇在何方"+i; 32 user.Password = "********"; 33 user.Email = "realh3@gmail.com"; 34 35 session.Save(user); 36 session.Flush(); 37 Debug.WriteLine("Nhibernate now is inserted " + i); 38 } 39 } 40 } 41 42 public static void DataVeryLiteInsert() 43 { 44 for (int i = 0; i < 1000; i++) 45 { 46 var user = new VeryLiteUser(); 47 user.Id = Guid.NewGuid().ToString(); 48 user.Name = "贼寇在何方" + i; 49 user.Password = "********"; 50 user.Email = "realh3@gmail.com"; 51 user.Save(false); 52 Debug.WriteLine("DataVeryLite now is inserted " + i); 53 } 54 } 55 public static void DataVeryLiteInsertBatch() 56 { 57 Sqlite sqlite = new Sqlite(); 58 var tran= sqlite.BeginTransaction(); 59 var list = new List<VeryLiteUser>(); 60 for (int i = 0; i < 1000; i++) 61 { 62 var user = new VeryLiteUser(); 63 user.Id = Guid.NewGuid().ToString(); 64 user.Name = "贼寇在何方" + i; 65 user.Password = "********"; 66 user.Email = "realh3@gmail.com"; 67 list.Add(user); 68 Debug.WriteLine("VeryLiteUser now is add to list " + i); 69 } 70 sqlite.SaveOnly<VeryLiteUser>(list, false, tran); 71 tran.Commit(); 72 } 73 74 public static void ShowExecuteTime(string name, Action action) 75 { 76 Console.ForegroundColor = ConsoleColor.Yellow; 77 Console.WriteLine(name + " start,please wait."); 78 Debug.WriteLine(name + " start,please wait."); 79 int start = System.Environment.TickCount; 80 action(); 81 int during = System.Environment.TickCount - start; 82 Console.ForegroundColor = ConsoleColor.Red; 83 Console.WriteLine(name + ":During time is " + during / 1000.0 + " s"); 84 Debug.WriteLine(name + ":During time is " + during / 1000.0 + " s"); 85 Console.WriteLine(); 86 }
插入条数:1000条
结果:
dataverylteBatch:用时2.59秒
dataverylte:用时156.64秒hibernate:用时145.58秒 源代码(Demo)下载地址:http://files.cnblogs.com/shuqizhao/DataVeryLiteNHibernateSQLiteDemo.zipDataVeryLite地址:http://dataverylite.codeplex.com/欢迎吐槽!
转载于:https://www.cnblogs.com/shuqizhao/p/3441414.html
DataVeryLite和Nhibernate性能对比相关推荐
- Java常用消息队列原理介绍及性能对比
消息队列使用场景 为什么会需要消息队列(MQ)? 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的.消息系统在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一 ...
- golang连接postgresql too many client_MySQL和PostgreSQL压测性能对比
阅读使人充实,讨论使人敏捷,写作使人精确. >>> 压测业务场景文章属于互联网社区动态类场景核心功能压测案例.至于题目涉及的MySQL和PostgreSQL之间的关系,主要为业务选型 ...
- php下curl与file_get_contents性能对比
为什么80%的码农都做不了架构师?>>> 上一篇讲了 <php使用curl替代file_get_contents>, 后续贴出了curl和file_get_cont ...
- p40与p100训练性能对比
深度学习训练,选择P100就对了 原文:https://yq.aliyun.com/articles/238764 摘要: 本文使用NVCaffe.MXNet.TensorFlow三个主流开源深度学习 ...
- php vs lua,解析LUA与PHP在WEB应用的性能对比
解析LUA与PHP在WEB应用的性能对比是本文要介绍的内容,这几天用在WEB开发的LUA框架已经完成,框架中已包括数据库操作和模板操作的功能,能够很简单方便的应用在WEB开发上.在此时我对这个LUA框 ...
- Jetson Nano and VIM3硬件参数对比及目标检测性能对比
文章目录: 1 Jetson Nano and VIM3硬件参数对比及目标检测性能对比 2 Jetson nano在yolov4目标检测性能 3 VIM在yolov3.yolov3-tiny.yolo ...
- MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不 ...
- cimage和gdi绘图效率比较_GDI+和GDI绘图性能对比实验
龙源期刊网 http://www.qikan.com.cn GDI+ 和 GDI 绘图性能对比实验 作者:王克茹 来源:<科技创新与应用> 2013 年第 25 期 摘 要:本文通过完全相 ...
- 五款主流 Linux 发行版性能对比,稳而不强?
测试结果解读 2018 即将结束,年末正是各种基准测试对比轮番出炉的时候,通过这些报告,我们可以看到 Linux 性能的各个方面在 2018 是如何发展的.但本文的这份性能对比会更加深入 -- 将研究 ...
最新文章
- 学python对学习有帮助吗-自学python有用吗?
- 字典占内存大吗_微博热搜稳占第一!「美团大数据杀熟」是真的吗?
- Qt中的QBoxLayout
- 分段函数 左右 f'正 不等于f'负 则f'导数不存在。所以不能推出f连续是否
- Envoy实现.NET架构的网关(一)静态配置与文件动态配置
- linux git 发邮件,gitlab发邮件基于sendmail
- 3D印花芭蕾舞鞋为舞者科学地保护双脚
- 12款优秀jQuery Ajax分页插件和教程
- matlab去趋势,[转载]使用Matlab对数据进行去趋势(detrend)
- 两个分数化简比怎么化_怎么化行最简形矩阵?
- ESP32 TIMER
- 关于SpringMVC中model的attribute无法指定别名的解决方案
- pycharm pip超时 无法下载package 更换源
- 分享10款保护隐私的搜索引擎,快手动收藏!
- delphi glsence 教程
- virutalbox 无线网卡桥接
- 广播、组播、单播区别与联系
- team viewer 远程控制计算机,使用TeamViewer让手机控制电脑的设置步骤
- 用故障恢复控制台恢复注册表
- 有源和无源设备的共质心布局:回顾和未来之路
热门文章
- 用animation的steps属性制作帧动画
- selenium WebDriverException: Message: unknown error: DevToolsActivePort file doesnt exist
- python3----智能检测编码的工具
- 20145220韩旭飞《网络对抗》Exp6 信息搜集与漏洞扫描
- VB.Net to C Sharp Converter有用吗?
- c++ 一日一练:istream.rdbuf(ostringstream.rdbuf())无效!
- Android输入输出机制之来龙去脉之前生后世
- Android RecycleView 去掉默认动画
- Android stadio 调试太掉了
- 【剑指offer-Java版】32从1到n的整数中1出现的次数