C#反射的性能测试

1. 反射序列化与动态编译序列化。

比较结果:

------ Test started: Assembly: Pixysoft.Framework.Configurations.dll ------

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:04.2031250

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:07.8593750

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:07.2187500

1 passed, 0 failed, 0 skipped, took 19.36 seconds (Ad hoc).

使用c#提供的序列化最快,而反射序列化和动态编译序列化差不多。证明了反射获取数据在序列化中的比重并不大。

------------------------------

2. 反射序列化与完全动态建立序列化适配器比较

所谓建立序列化适配器,就是针对不同的对象,内存建立一个针对的获取数据的对象,这样就不需要通过反射获取属性,而是等效于直接获取。

------ Test started: Assembly: Pixysoft.Framework.Configurations.dll ------

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:04.1406250

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:08

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:07.5468750

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:01.1250000

1 passed, 0 failed, 0 skipped, took 20.91 seconds (Ad hoc).

可见如果是直接获取值,速度最快。 提升大概4倍(50000次循环。)

----------------------

3. 比较IMessageSInk和直接获取数据性能。

循环10w次,结果是:

Begin CreateObjectUsingReflection

00:00:11.2187500

Begin CreateObjectUsingReflection

Begin CreateObjectUsingReflection

00:00:00.0156250

提升了接近1000倍。。。。晕倒了。

时间: 2024-12-03 11:07:45

C#反射的性能测试的相关文章

Java中反射性能测试

Java反射效率到底如何,花了点时间,做了一个简单的测试.供大家参考. 测试背景:  1. 测试简单Bean(int,Integer,String)的set方法 2. loop 1亿次 3. 测试代码尽可能避免对象的创建,复发方法的调用,仅仅测试set方法的耗时 测试结果:  场景  本机测试结果(XP,双核,2G) 服务器测试结果(Linux,XEN虚拟机,8核,5.5G) 方法直接调用 235MS 190MS JDK Method调用 29188MS 4633MS JDK Method调用(

【闲说】性能测试

版权声明:本文为本作者原创文章,转载请注明出处.感谢 码梦为生| 刘锟洋 的投稿 性能测试是一件看起来不简单,操作起来确更困难的事情,我认为,每认真做一次性能测试,一定会有不同收获,而每次性能测试暴露的问题,现象都不是仅仅涉及Java,tomcat这么简单,简单说就是光会写代码是无法做好性能测试的. 那么,就趁着这次性能测试的机会,重新梳理下对linux,网络IO等基本功的认识已经就性能瓶颈的定位分享下自己的心得. 背景: 本次性能测试的目的是测试使用公司内部RPC框架开发的一套接口的性能,目的

Java中的类反射机制

一.反射的概念 :反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩.其中LEAD/LEAD++ .OpenC++ .MetaXa和OpenJava等就是基于反射机制的语言.最近,反射机制也被应用到了视窗系统.操作系统和文件系统中. 反射本身并不是一个新概念,它可能会使我们联想到光学中的反射概念,尽管计算机科学

玩转动态编译(三) 提高性能,抛弃反射

通过之前2篇文章的介绍,大家一定发现了,动态编译后的对象只能通过反射调用,但是反射往往是 一个程序性能的瓶颈,这个真的无法突破么?答案当然是否定的,接下来就我就来说说怎么才能,挖掘 动态编译的潜力. 一点废话 我刚来博客园才1星期左右,昨天才弄懂怎么发表到首页,先 说声抱歉了,昨天的文章有几个地方贴的源码居然少了几个字符,有点莫名其妙,也难怪有人不能运行 了,虽然是小错误,但是如果认真检查的话也是可以避免的,这是我的失误. 还有一点,这个< 玩转动态编译>是一个系列的,虽然没有大纲,不知道会写

Kubernetes性能测试和发展计划

本文讲的是Kubernetes性能测试和发展计划,[编者的话]Kubernetes是谷歌在2014年发起的开源容器编排框架,本文作者Wojciech Tyczynski,谷歌软件工程师,文章主要阐述目前状态下Kubernetes的性能测试和下一步发展计划. 无论你的容器编排系统是多灵活多可靠,你最终还是会有些工作要做,而且你还希望它能够完成得更快.对于大的问题,常见的方案就是投入更多的机器.毕竟,更多的计算=更快,对吗? 有趣的是,投入更多节点有点像『火箭方程的暴政』(tyranny of th

Java常用排序算法及性能测试集合_java

现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧.本文适合做java面试准备的材料阅读. 先附上一个测试报告: Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort : 252 msinsertSort : 218 msinsertSortAdvanced : 127 msinsertSor

一种改进的轻量级.NET应用程序性能测试框架

摘要:本文从实际应用出发,提出一种轻量级.NET应用程序性能测试框架设计方案.该方案是对已有结果的进一步扩充,具有更强的实用性和扩展性.  1 引言 文[1]提出一种.NET应用程序"性能测试框架",其基本思路是通过多个线程执行通过委托传递过来的待测试的程序块,各线程所运行的程序块的主逻辑是相同的,不同的是执行条件(如初始参数.执行次数等).这样就可以得到不同"环境"下算法的执行时间,进而得到整体的时间消耗分布情况.应该说,这种方法的思路是很清晰的,使用也很方便.文

几种不同WiMAX无线环境下接入软交换IAD性能测试

WiMAX技术作为无线宽带城域网标准,在非视距传输及频谱利用效率方面较以前的3.5GHzMMDS产品具有较大优势.而作为下一代网络的核心之一,基于IP网络的软交换技术在综合业务接入.QoS等级保证方面也已经非常成熟,即将替代现 有的PSTN设备.本文通过介绍几种不同WiMAX无线环境下接入软交换IAD性能测试的结果,为运营商"最后一公里"的综合业务接入提供一种灵活.便捷的解决方案.为实现 各地提升城市形象.改善城市环境的目标,越来越多的通信.电力架空杆线等都将会入地,并且对于新城区.开

java反射机制的实现原理

java反射机制的实现原理反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method:其中class代表的时类对象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象.通过这四个对象我们可以粗略的看到一个类的各个组 成