EntityFramework 性能简单测试

EntityFramework 的便捷不多阐述, 就他的性能来测试了下  不做评论,   缓存机制确实还不错  ....

简单的查询一条数据

 1         public static IM_CallRecord GetEFData()
 2         {
 3             using (ModelContainer mv = new ModelContainer())
 4             {
 5                 return (from c in mv.IM_CallRecord where c.id == 12356 select c).SingleOrDefault<IM_CallRecord>();
 6             }
 7         }
 8
 9         static void Main(string[] args)
10         {
11             Console.WriteLine("从230万条数据取一条数据");
12             //=================常规SQL===================
13             var beginTime = DateTime.Now;
14             com.infusionmanage.model.impl.IM_CallRecordDAOImpl im = new com.infusionmanage.model.impl.IM_CallRecordDAOImpl();
15             im.findByPage(12356, 1);
16             var endTime = DateTime.Now;
17             Console.WriteLine("---常规SQL----耗时:" + (beginTime - endTime).ToString());
18
19             //=================EF框架=====================
20             beginTime = DateTime.Now;
21             GetEFData();
22             endTime = DateTime.Now;
23             Console.WriteLine("从EF框架第一次耗时:" + (beginTime - endTime).ToString());
24
25             beginTime = DateTime.Now;
26             GetEFData();
27             endTime = DateTime.Now;
28             Console.WriteLine("从EF框架第二次耗时:" + (beginTime - endTime).ToString());
29
30             Console.ReadKey();
31         }

高层视图:
改变在现有系统使用EntityFramework并使其正常工作最好的理由是什么?

• All -in-1框架的类映射表,需要编写映射代码, 并且是很难维护的。 
• 可维护性,易于理解的代码,无需创造大的数据访问层。 
• 提供LINQ查询数据库,这需要从初级开发人员不太了解SQL。 
• EF可以用作用于数据服务和OData Service的基础设施。
什么的情况下,不建议使用EF呢:

• 实时的应用程序。 
• 只能通过存储过程访问数据库。 EF的优势是:跟踪实体状态Change时,不仅仅在存储过程上.(即使EF确实对存储过程支持有限的)。 
• 频繁插入操作(Insert),  并且EF不支持大数据Bulk 插入。 
• 频繁更新操作,更新的目标主要是当多行(用一个单值) 
   例如:UPDATE 表名 SET ColumA = 10 Where ColumnB =? 
   这种更新操作更好的使用的ExecuteNonQuery(也可从Context上下文或直接从Ado.Net)。 
• 反范式的表设计和高性能查询。 EF产生查询,他们是难以维护的,它并不能很好地支持映射到不规范的表。
• 对程序有非常的性能要求, 需要对每个查询进行监控.

时间: 2024-10-18 12:38:25

EntityFramework 性能简单测试的相关文章

Windows IO 性能简单测试

转自:http://bbs.csdn.net/topics/360111289, 有改动. #include <windows.h>#include <stdio.h>#include <process.h>#include<memory>#pragma comment(lib,"ws2_32.lib")ULONGLONG g_nReadCounts=0,g_nWriteCounts=0,g_nOtherCounts=0,g_nReads

sqlite性能简单测试

主要测试sqlite在大数据量下的插入及查询性能: 测试环境:Centos6.4  1G内存  单核 数据量 大小 索引字段检索(耗时) 非索引字段检索(耗时) 总插入时间 10W 19M 0.001s 0.036s 5.1s 50W 100M 0.0014s 0.147s 32.21s 100W 200M 0.0009s 5.277s 63.29s 200W 400M 0.0008s 12.51s 130.2s 500W 1002M 0.0016s 17.3s 513.1s 1000W 2G

Java学习-排序二叉树性能简单测试

1.创建4万个随机数,然后用分别用冒泡法,选择法,二叉树法3种排序算法进行排序,比较哪种更快 1 package Collection; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class sortSpeedTest { 7 8 public static void main(String[] args) { 9 int num = 40000; // 元素个数 10 int rnd1[] = new

ab工具使用(测试平台的并发性能)简单介绍一下

Apache -- ab工具主要测试网站的(并发性能) 这个工具非常的强大. 基本语法 :   cmd>ab.exe –n 请求总次数  -c 并发数 请求页面的url    进入到ab.exe目录 举例:  cmd>ab.exe –n 10000 –c 100 http://localhost/test.php 简单test结果简单介绍一下: ab工具使用(测试平台的并发性能)简单介绍一下

Struts2、SpringMVC、Servlet(Jsp)性能对比 测试

Struts2.SpringMVC.Servlet(Jsp)性能对比 测试 . Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照它. 做为一个程序员,对于各个框架的性能要有一个基本的认知,便于选型时做出正确的决策. 在测试中发现了什么也不要大喊大叫,因为这些都是Java程序员的基础知识. 人人都要了解. ----------------------------------------------------------------------------------

Web性能压力测试工具之Apache AB 详解

下载安装地址: http://httpd.apache.org/download.cgi yum install httpd-tools http://www.apachelounge.com/download/ 下载 http://files.cnblogs.com/files/chen110xi/ab.7z PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型

Linux服务器性能压力测试

对于新采购的服务器,需要进行有必要的性能测试.这里选择UnixBench工具进行性能测试.记录如下: 1)安装使用下面的脚本使用了最新版UnixBench5.1.3来测试,注释了关于graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好.(提前将UnixBench5.1.3.tgz下载到了服务器的/root目录下了) [[email protected] ~]# cat bench.sh #!

Android性能专项测试测试点指导(二)

Android性能专项测试测试点指导(一) 上一篇文章通过导图的方式介绍了性能专项的几个测试点,那么今天将会详细阐述下. 内存: 内存泄漏: 老生常谈的最多就是这货,这家伙的测试方法其实是最简单也是最难的,为什么简单,因为你要定位到路径,只需要重复操作即可,比如你怀疑播放器泄漏了,重复进入退出N次,那么就可以确定是播放器出问题了,可以提单了:说难,你需要进一步分析到底是哪里泄漏了,通过MAT工具去对比,去分析定位到类,那就需要精力和时间了,通常还吃力不讨好-最近,出现了这样一个工具LeakCan

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

我想测试EF在一百万条数据下的显示时间!这分数据应该有很多同学想要,看看EF的性能! 服务器 现在来向SQL2008R2插入1000000条数据吧 declare @i int; set @i=0; while @i<1000000 begin INSERT INTO [AppDB].[dbo].[MIS_Article] ([Id] ,[ChannelId] ,[CategoryId] ,[Title] ,[ImgUrl] ,[BodyContent] ,[Sort] ,[Click] ,[C