jdk1.6 反射性能对比
ReflectPerformance.java
package aaa.bbb.ccc;
import java.lang.reflect.Method;
public class ReflectPerformance {
    String name ;
    public static void reflect(String arg){
        int  i = 0 ;
    }
    public static void one() throws Exception{
        TLTimeContainer.recordTime();
        Method m ;
        ReflectPerformance obj = new ReflectPerformance();
        for(int i = 0 ; i < 100000 ; i ++){
            m = obj.getClass().getMethod("reflect",  new Class[]{String.class});
            m.invoke(obj, "bobo");
        }
        TLTimeContainer.recordTime();
        TLTimeContainer.print();
        TLTimeContainer.clearAll();
    }
    public static void two() throws Exception{
        TLTimeContainer.recordTime();
        Method m ;
        ReflectPerformance obj = new ReflectPerformance();
        for(int j = 1 ; j < 100000 ; j ++){
            obj.reflect("bobo");
        }
        TLTimeContainer.recordTime();
        TLTimeContainer.print();
        TLTimeContainer.clearAll();
    }
    public static void main(String[] args) throws Exception{
        one();
        two();
    }
}
打印结果
类aaa.bbb.ccc.ReflectPerformance->方法one 起于:1453857415270
类aaa.bbb.ccc.ReflectPerformance->方法one 止于:1453857415364
类aaa.bbb.ccc.ReflectPerformance->方法one 耗时:94
__________________________________________
类aaa.bbb.ccc.ReflectPerformance->方法two 起于:1453857415365
类aaa.bbb.ccc.ReflectPerformance->方法two 止于:1453857415366
类aaa.bbb.ccc.ReflectPerformance->方法two 耗时:1
__________________________________________
TLTimeContainer源码.
总结:10万次跑下来,并未和普通调用有多大差距
jdk1.6 反射性能对比的更多相关文章
- jdk1.6 反射性能对比【原】
		
ReflectPerformance.java package aaa.bbb.ccc; import java.lang.reflect.Method; public class ReflectPe ...
 - Java各种反射性能对比
		
对各种方法实现get方法的性能进行了一个测试. 总共有5个测试,,每个测试都是执行1亿次 1. 直接通过Java的get方法 2.通过高性能的ReflectAsm库进行测试 3.通过Java Clas ...
 - 再看ExpressionTree,Emit,反射创建对象性能对比
		
[前言] 前几日心血来潮想研究着做一个Spring框架,自然地就涉及到了Ioc容器对象创建的问题,研究怎么高性能地创建一个对象.第一联想到了Emit,兴致冲冲写了个Emit创建对象的工厂.在做性能测试 ...
 - 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)
		
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...
 - 反射(4)反射性能问题:直接调用vs反射调用
		
很多人都说使用反射会有性能问题,那到底会比直接调用慢多少呢,下面就来测试一下. 直接调用vs反射调用 下面就来写个demo来验证下直接调用和反射调用的性能差异,代码如下: namespace Cons ...
 - C# 之 反射性能优化2
		
问题回顾 在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用. 然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托? 如果我们将委托保存在字典集合中,会发现这种 ...
 - Java的几种创建实例方法的性能对比
		
近来打算自己封装一个比较方便读写的Office Excel 工具类,前面已经写了一些,比较粗糙本就计划重构一下,刚好公司的电商APP后台原有的导出Excel实现出现了可怕的性能问题,600行的数据生成 ...
 - LongAdder和AtomicLong性能对比
		
jdk1.8中新原子操作封装类LongAdder和jdk1.5的AtomicLong和synchronized的性能对比,直接上代码: package com.itbac.cas; import ja ...
 - 如何利用缓存机制实现JAVA类反射性能提升30倍
		
一次性能提高30倍的JAVA类反射性能优化实践 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第4期-支付结算部支付研发团队高级工程师陶红<JAVA类反射技术&优化> ...
 
随机推荐
- LINK : fatal error LNK1117: syntax error in option 'VERSION:1.6.5'
			
今天在用vs2015编译ogre 1.6.5的代码时发生连接错误 LINK : fatal error LNK1117: syntax error in option 'VERSION:1.6.5'. ...
 - 深入C#中get与set的详解(转)
			
转自:http://www.jb51.net/article/37960.htm 释一:属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句.访问器声明可以包含 get 访问器或 se ...
 - 转--Eclipse中ctrl+shift+r与ctrl+shift+t的区别
			
Eclipse中ctrl+shift+r与ctrl+shift+t的区别 标签: 快捷键工作区文件搜索打开资源文件 2016-09-13 15:44 292人阅读 评论(0) 收藏 举报 分类: e ...
 - ZooKeeper程序员指南(转)
			
译自http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html 1 简介 本文是为想要创建使用ZooKeeper协调服务优势的分布式 ...
 - 在ios8中做的屏幕旋转功能
			
http://www.cnblogs.com/smileEvday/archive/2013/04/24/Rotate2.html 思路出自这篇博主的文章. 直接上代码 -(void)willAnim ...
 - springmvc视图解析流程
			
无论目标方法返回String.VIew或者是ModelAndView,springmvc都会转化成ModelAndView 然后通过视图解析器(如InternalResouceViewResolver ...
 - Hihocoder 1035 [树形dp]
			
/* 题意: 不要低头,不要放弃,不要气馁,不要慌张. PS:人生第一道自己独立做出来的树形dp... 给一棵树,标号1到n,每条边有两个权值,步行时间和驾车时间.车在1号点. 给m个必须访问的关键点 ...
 - AS3下如何来判断XML属性的是否存在
			
在as3中判断xml节点是否存在可用XMLList中的方法:hasOwnProperty(p:String):Boolean. 但是判断xml节点是否存在某一属性,对象中好像没有该方法,只能用unde ...
 - java事件监听
			
获取事件监听需要获取实现ActionListener接口的方法, public class SimpleEvent extends JFrame{ private JButton jb=new ...
 - Django学习笔记(一)
			
1.$python manage.py runserver 0.0.0.0:8000 开放所有IP $python manage.py runserver 8000 制定开放的端口 2.报错信息: ...