C#三种创建对象方法所需时间比较。。。。。
C#创建对象的三种方法 new()、Activator、Assembly,接下来通过代码直接来看看运行的速度。。。。
首先,先看看三种创建对象实例的方法:
//new();
public static T New<T>() where T : new()
{
return new T();
} //Activator创建实例
public static T Act_Create<T>()
{
return Activator.CreateInstance<T>(); ;
} //Assembly创建实例
public static T Ass_Create<T>()
{
return (T)Assembly.Load(_assemblyPath).CreateInstance(_assemblyPath + _typeName);
}
接下来直接来看,创建10000个对象三种方法各自所需要的时间:
//Console.Write("通过New创建10000个对象实例所需的时间:");
Console.WriteLine(TimeWatcher.Watch(() =>
{
for (var i = ; i < ; i++)
{
var s_instance = ConvertToModel.New<StudyProgram.Common.Student>();
} })); //Console.Write("通过Activator创建10000个对象实例所需的时间:");
Console.WriteLine(TimeWatcher.Watch(() =>
{
for (var i = ; i < ; i++)
{
var s_instance = ConvertToModel.Act_Create<StudyProgram.Common.Student>();
}
})); //Console.Write("通过Assembly创建10000个对象实例所需的时间:");
Console.WriteLine(TimeWatcher.Watch(() =>
{
for (var i = ; i < ; i++)
{
var s_instance = ConvertToModel.Ass_Create<StudyProgram.Common.Student>();
}
}));
运行时间图如下:
根据上述运行结果,发现new(),Activator时间差不多少,但是Assembly运行时间是上面两个方法10倍之多。。。。
虽然三种方法的运行效率不一样,但存在即合理,不一定速度快的就是最合适的,适合自己的才是最好。
C#三种创建对象方法所需时间比较。。。。。的更多相关文章
- Liunx 环境下vsftpd的三种实现方法(超详细参数)
以下文章介绍Liunx 环境下vsftpd的三种实现方法 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本.假 ...
- StringBuilder的三种删除方法比较
分别用一千万次循环来比较StringBuilder的三种删除方法所用时间 未避免偶然性,再循环一百次来比较总时间 --主类 public class StringBuilderRemove { pub ...
- C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...
- selenium webdriver三种等待方法
webdriver三种等待方法 1.使用WebDriverWait from selenium import webdriverfrom selenium.webdriver.common.by im ...
- RFID标签天线的三种制作方法
在RFID标签中,天线层是主要的功能层,其目标是传输最大的能量进出标签芯片.RFID天线是按照射频识别所要求的功能而设计的电子线路,将导电银浆或导电碳浆网印在PVC.PC或PET上,再与面层.保护层和 ...
- 【转】selenium webdriver三种等待方法
原文:https://www.cnblogs.com/lgh344902118/p/6015593.html webdriver三种等待方法 1.使用WebDriverWait from seleni ...
- (java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待
selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java. ...
- map的三种遍历方法!
map的三种遍历方法! 集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...
- JS高级---三种创建对象的方式
JS高级---三种创建对象的方式 字面量的方式 (实例对象) 调用系统的构造函数 自定义构造函数方式 //创建对象---->实例化一个对象,的同时对属性进行初始化 var per=new Per ...
随机推荐
- 1、DataGridView
DataGridView赋值后 通过RowPostPaint事件绘制行号 private void AddXh() { DataGridViewTextBoxColumn col = new Data ...
- 4.bool组合查询
主要知识: 学习bool组合查询 bool嵌套 1.搜索发帖日期为2017-01-01,或者帖子ID为XHDK-A-1293-#fJ3的帖子,同时要求帖子的发帖日期绝对不为2017-01-02 ...
- 【模板】Tarjan缩点
洛谷3387 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...
- 【Codeforces 1114A】Got Any Grapes?
[链接] 我是链接,点我呀:) [题意] 水题 [题解] 哪个比较挑剔优先给他选>_< [代码] import java.io.*; import java.util.*; public ...
- 《高性能MySQL》笔记-BLOB与TEXT
BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储. 实际上,它们分别属于两组不同的数据类型家族: 字符类型是TINYTEXT,SMALLTEXT,TEXT,M ...
- [cogs736][网络流24题#13]星际转移[网络流,网络判定]
将一个空间站分为天数个点,每次枚举天数,每增加一天就把对应天数的边连上,用网络流判定可行性,即-判断最大流是否不小于k,注意编号不要错位.通过此题,可见一些网络流题目需要用到网络判定方法,但虽然答案具 ...
- [bzoj1010][HNOI2008]玩具装箱toy_斜率优化dp
玩具装箱toy bzoj-1010 HNOI-2008 题目大意:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一 ...
- N天学习一个linux命令之xargs
用途 标准输入流读取参数(空格或者换行符分隔),传递给需要执行的命令 用法 xargs [options] [command [initial-arguments]] 常用选项 --arg-file= ...
- XMPP基本内容简单介绍
即时通讯技术简单介绍 即时通讯技术(IM)支持用户在线实时交谈.假设要发送一条信息,用户须要打开一个小窗体,以便让用户及其朋友在当中输入信息并让交谈两方都看到交谈的内容.有很多的IM系统,如AOL I ...
- Hadoop - MapReduce MRAppMaster-剖析
一 概述 MRv1主要由编程模型(MapReduce API).资源管理与作业控制块(由JobTracker和TaskTracker组成)和数据处理引擎(由MapTask和Redu ...