Moon.Orm性能报告

以下为有网友公司的评估测试及使用规范

大家可以下载word看看

http://pan.baidu.com/s/1hquvRuc

一、和ADO.NET进行的压力测试

说明:2000并发用户,此图为一网友公司对moon.orm的测评

二、和ADO.NET的性能对比测试

说明:同时请求10000条数据,此图为一网友公司对moon.orm的测评

三、和实体框架的对比测试

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Diagnostics;
using System.Linq;
using System.Text;
using Moon.Orm;
using EfTest.Models;
using eftest;
namespace EfTest
{class Program{private static readonly Stopwatch Watch = new Stopwatch();static void Main(string[] args){Watch.Start();Database.SetInitializer(new SampleData());using (var db = new TestContext()){db.Database.Initialize(false);}Watch.Stop();//Console.WriteLine("数据库初始化完成,耗时{0}", Watch.Elapsed);Method01();StartTest();}private static void Method01(){Console.WriteLine("查询预热,防止第一次查询影响结果。");var db = new TestContext();Console.WriteLine("产品目录个数:{0}", db.Categories.Count());Console.WriteLine("客户个数:{0}", db.Customers.Count());Console.WriteLine("产品个数:{0}", db.Products.Count());Console.WriteLine("订单个数:{0}", db.Orders.Count());Console.WriteLine("订单明细个数:{0}", db.OrderDetails.Count());db.Dispose();Console.WriteLine("查询预热结束-------------------------\r\n");}private static void StartTest(){Console.WriteLine("单表查询");EFTest1();MoonTest1();MoonDyanimic();Console.WriteLine();Console.WriteLine("连接查询");EFTestJoin();MoonTestJoin();Console.WriteLine();Console.WriteLine("嵌套查询");EFTestQianTao();MoonTestQianTao();Console.Read();}private static void EFTest1(){Watch.Restart();var db = new TestContext();db.Configuration.AutoDetectChangesEnabled=false;var list = db.OrderDetails.Where(m=>m.DetailId>1&&m.UnitPrice>0).ToList();db.Dispose();Watch.Stop();Console.WriteLine("  EFTest1:"+Watch.Elapsed);}private static void MoonTest1(){Watch.Restart();using (Db db=Db.CreateDefaultDb()) {var mql2=OrderDetailsSet.SelectAll().Where(OrderDetailsSet.UnitPrice.BiggerThan(0).And(OrderDetailsSet.DetailId.BiggerThan(1)));var list2=db.GetEntities<OrderDetails>(mql2);}Watch.Stop();Console.WriteLine("MoonTest1:"+Watch.Elapsed);}private static void MoonDyanimic(){using (Db db=Db.CreateDefaultDb()) {var list2=db.GetDynamicList("select * from OrderDetails where DetailId>10 ","hi");}Watch.Restart();using (Db db=Db.CreateDefaultDb()) {var mql=OrderDetailsSet.SelectAll();var list2=db.GetDynamicList("select * from OrderDetails where DetailId>1 and UnitPrice>0 ","hi");}Watch.Stop();Console.WriteLine("MoonDyanimic:"+Watch.Elapsed);}private static void EFTestJoin(){Watch.Restart();var db = new TestContext();db.Configuration.AutoDetectChangesEnabled=false;var list = db.OrderDetails.Where(m=>m.DetailId>3&&m.UnitPrice>0).Select(m => new{m.DetailId,m.UnitPrice,m.Product.ProductName}).ToList();foreach (var A in list) {Console.WriteLine(A.DetailId+"  "+A.UnitPrice+" "+A.ProductName);break;}db.Dispose();Watch.Stop();Console.WriteLine("  EFTestJoin:"+Watch.Elapsed);}private static void MoonTestJoin(){Watch.Restart();using (Db db=Db.CreateDefaultDb()) {var mql2=OrderDetailsSet.Select(OrderDetailsSet.DetailId,OrderDetailsSet.UnitPrice);var mql=ProductsSet.Select(ProductsSet.ProductName);var join=mql.LeftJoin(mql2).ON(OrderDetailsSet.ProductId.Equal(ProductsSet.ProductId)).Where(OrderDetailsSet.UnitPrice.BiggerThan(0).And(OrderDetailsSet.DetailId.BiggerThan(3)));var list2=db.GetDictionaryList(join);foreach (var A in list2) {Console.WriteLine(A["DetailId"]+"  "+A["UnitPrice"]+" "+A["ProductName"]);break;}}Watch.Stop();Console.WriteLine("MoonTestJoin:"+Watch.Elapsed);}private static void MoonTestQianTao(){Watch.Restart();using (Db db=Db.CreateDefaultDb()) {var mql=ProductsSet.SelectAll().Where(ProductsSet.CategoryId.In(CategoriesSet.Select(CategoriesSet.CategoryId).Where(CategoriesSet.CategoryName.Equal("分类00"))));var sql=mql.ToDebugSQL();var list=db.GetEntities<Products>(mql);}Watch.Stop();Console.WriteLine("MoonTestQianTao:"+Watch.Elapsed);}private static void EFTestQianTao(){Watch.Restart();var db = new TestContext();db.Configuration.AutoDetectChangesEnabled=false;var list = db.Products.Where(m=>m.Category.CategoryName.Equals("分类00")).ToList();db.Dispose();Watch.Stop();Console.WriteLine("  EFTestQianTao:"+Watch.Elapsed);}}
}

执行文件下载地址
http://pan.baidu.com/s/1i3khc0H
先在sqlserver数据库中建一个名为:TestContext
的数据库,
您只需修改配置文件中的连接字符串
然后运行即可

 以下为网友运行截图

 

 

转载于:https://www.cnblogs.com/humble/p/3472764.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码

目录原理保守组检测非保守组检测二次重复测试自适应二次重复测试四种测试方法的核心代码保守群组测试非保守群组测试二次重复测试与自适应二次重复测试测试代码参考文献原理 假设该病在人群中的患病率&#xff08;先验概率&#xff09;为p&#xff0c;我们想用群体检验法检验N…

AngularJS中的表达式

AngularJS表达式 (AngularJS Expressions) In AngularJS, expressions are solved to give a result. It outputs the result of the expression in the html element that called it. Expressions in AngularJS contain literals, constants, operators and variables with re…

学习总结:机器学习(一)

有监督学习&#xff08;Supervised Learning&#xff09;所谓有监督学习&#xff0c;是区别于无监督学习而言的。其过程如下&#xff1a;给定一系列样本&#xff0c;样本是由一系列特征值和输出值组成。比如&#xff0c;某个地方的商品房&#xff0c;包括房子大小、房间数、距离…

WPS双栏格式下插入单栏图片

以一个我认识的西工大博士大佬的一篇SCI为例&#xff0c;期刊是双栏&#xff0c;图片过大&#xff0c;需要单栏进行展示&#xff0c;效果图如下&#xff1a; 一、双栏内容 二、插入单栏图像 随便敲几个字&#xff0c;选中&#xff0c; 页面布局----分栏---一栏 这行字就会…

JavaScript中的数组

Here we are discussing one of the most useful data structure, Array. 在这里&#xff0c;我们讨论最有用的数据结构之一Array 。 By conventional definition of arrays, "Arrays are the homogeneous collection of data types. But in JS, Arrays simply are the c…

WPS根据章节编号依次排序

第Ⅲ章节有四小部分&#xff0c;分别为A、B、C、D 第Ⅳ章节要重新开始编号&#xff0c;从A开始 操作步骤&#xff1a; ①再D后面回车&#xff08;红线位置回车&#xff09;&#xff0c;生成E ②把Ⅳ中待写内容写到E中 ③将E复制到Ⅳ下&#xff0c;这里需要注意D的换行也要复制…

【C++基础】异常匹配与内建异常类

目录异常匹配catch: 按异常类型匹配为何要使用异常类内建异常类标准库中的异常基类标准库中的异常类例1&#xff1a;vector下标访问越界out_of_range异常例2&#xff1a;内存分配失败bad_alloc异常例3&#xff1a;侧向转换失败bad_cast异常类几种情况&#xff0c;使用对应异常异…

小试---EF5.0入门实例1

现在做个小练习吧~~~ 第一步&#xff1a;首先新建一个数据库名字为Test;数据库里面只有一个表UserTable 脚本为&#xff1a; USE [master] GO /****** 对象: Database [Test] 脚本日期: 12/15/2013 18:51:54 ******/ CREATE DATABASE [Test] ON PRIMARY ( NAME NTest, F…

iScroll4 禁止select等页面元素默认事件的解决方法 转

iScroll4 禁止select等页面元素默认事件的解决方法起因在于onBeforeScrollStart : function(e){ e.preventDefault(); },这一行&#xff0c;iSroll禁止了事件的默认行为&#xff0c;导致select&#xff0c;option&#xff0c;textarea等元素无法点击。解决方法也很简单&#xf…

MPEG的完整形式是什么?

MPEG&#xff1a;运动图像专家组 (MPEG: Moving Picture Experts Group) MPEG is an abbreviation of Moving Picture Experts Group. It is a working group of authorities that is founded to establish standards for audio and video compression and transmission. The a…

安利一款倒计时插件---雨滴桌面

内容来自B站(搜索Rainmeter即可)&#xff0c;里面教程很多&#xff0c;因为视频看的有点麻烦&#xff0c;故进行了整理 一、下载安装包、解压、安装 免费下载连接&#xff0c;不需要积分 skin文件夹存放皮肤的一些配置文件&#xff0c;因为原本皮肤太low了 第二个是可执行文…

【C++基础】自定义异常类与多重捕获

目录自定义异常类构建过程例&#xff1a;Vec3D类的数组下标越界的异常类捕获多种无关异常不同的异常的捕获捕获派生异常异常处理的次序例子&#xff1a;多重捕获异常类catch块的参数类型可以不用引用类型吗?自定义异常类 自定义异常类通常由exception或其后代类派生。这样我们…

gprs 睡眠模式_GPRS的完整形式是什么?

gprs 睡眠模式GPRS&#xff1a;通用分组无线业务 (GPRS: General Packet Radio Service) GPRS is an abbreviation of General Packet Radio Service. It is a non-voice, high-level speed packet switching technology planned for GSM networks. On 2G and 3G cellular tran…

【C++基础】C++11的noexcept声明符 与 异常传播

目录C noexcept&#xff1a;1、用途2、用法1、noexcept声明符的用法&#xff1a;2、noexcept运算符的用法异常传播1、异常传播的定义2、异常传播中的规则3、异常传播的代价C noexcept&#xff1a; 1、用途 C11使用noexcept指明函数是否抛出异常&#xff1a; 若函数不抛异常&a…

CSS中的文本格式

CSS文字格式 (CSS text formatting) CSS text properties allow you to style your text in various ways very easily. Such as color, alignment, spacing, direction, etc. CSS文本属性使您可以轻松地以各种方式设置文本样式。 例如颜色 &#xff0c; 对齐方式 &#xff0c;…

CSS简写指南

1.margin 1.1 margin:1px 2px 3px(上 左右 下) 1.2 margin:2px 3px(上下 左右) 1.2 margin:1px 3px 2px 3px(上右下左) 2.padding(同上) 3.border border:1px red solid (border-width border-color border-style) 1 2 3border-width&#xff1a;1px 2px 3px; //最多可用四个值…

【C++基础】模板基础与函数模板

目录初识模板函数模板函数模板实例化显式实例化隐式实例化初识模板 求两个int、float、char类型的数据的最大值&#xff1a; C里面要这样写&#xff1a; int maxInt(int x, int y); double maxDouble(double x, double y); char maxChar(char x, char y);C使用函数重载&#…

TAFE的完整形式是什么?

TAFE&#xff1a;拖拉机和农用设备 (TAFE: Tractors and Farm Equipment) TAFE is an abbreviation of Tractors and Farm Equipment Limited. It is an Indian tractor manufacturer which is founded at Chennai in 1960. It is the second-largest tractor manufacturer in …

【C++基础】 类模板

类模板 模板是将类中某些类型变为泛型&#xff0c;从而定义一个模板。 如下&#xff1a; 类模板的语法 直接进行对比&#xff1a; 泛型化之前 泛型化之后类模板的实例化 注意&#xff1a;只要是对类模版进行实例化&#xff0c;编译器就会生成一个类&#xff01;&#xff0…

cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面

之前两个博客讲述了象棋的规格和工程文件之后&#xff0c;我们继续深入的从代码开始学习cocos2dx首先从程序入口main函数开始main函数int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) {UNREFERENCED_PARAMETER(h…