ReflectPerformance.java

  1. package aaa.bbb.ccc;
  2.  
  3. import java.lang.reflect.Method;
  4.  
  5. public class ReflectPerformance {
  6. String name ;
  7.  
  8. public static void reflect(String arg){
  9. int i = 0 ;
  10. }
  11.  
  12. public static void one() throws Exception{
  13. TLTimeContainer.recordTime();
  14.  
  15. Method m ;
  16. ReflectPerformance obj = new ReflectPerformance();
  17. for(int i = 0 ; i < 100000 ; i ++){
  18. m = obj.getClass().getMethod("reflect", new Class[]{String.class});
  19. m.invoke(obj, "bobo");
  20. }
  21.  
  22. TLTimeContainer.recordTime();
  23. TLTimeContainer.print();
  24. TLTimeContainer.clearAll();
  25. }
  26.  
  27. public static void two() throws Exception{
  28. TLTimeContainer.recordTime();
  29.  
  30. Method m ;
  31. ReflectPerformance obj = new ReflectPerformance();
  32. for(int j = 1 ; j < 100000 ; j ++){
  33. obj.reflect("bobo");
  34. }
  35.  
  36. TLTimeContainer.recordTime();
  37. TLTimeContainer.print();
  38. TLTimeContainer.clearAll();
  39. }
  40.  
  41. public static void main(String[] args) throws Exception{
  42. one();
  43. two();
  44. }
  45. }

打印结果

  1. aaa.bbb.ccc.ReflectPerformance->方法one 起于:1453857415270
  2. aaa.bbb.ccc.ReflectPerformance->方法one 止于:1453857415364
  3. aaa.bbb.ccc.ReflectPerformance->方法one 耗时:94
  4. __________________________________________
  5. aaa.bbb.ccc.ReflectPerformance->方法two 起于:1453857415365
  6. aaa.bbb.ccc.ReflectPerformance->方法two 止于:1453857415366
  7. aaa.bbb.ccc.ReflectPerformance->方法two 耗时:1
  8. __________________________________________
  1. TLTimeContainer源码.

总结:10万次跑下来,并未和普通调用有多大差距

jdk1.6 反射性能对比的更多相关文章

  1. jdk1.6 反射性能对比【原】

    ReflectPerformance.java package aaa.bbb.ccc; import java.lang.reflect.Method; public class ReflectPe ...

  2. Java各种反射性能对比

    对各种方法实现get方法的性能进行了一个测试. 总共有5个测试,,每个测试都是执行1亿次 1. 直接通过Java的get方法 2.通过高性能的ReflectAsm库进行测试 3.通过Java Clas ...

  3. 再看ExpressionTree,Emit,反射创建对象性能对比

    [前言] 前几日心血来潮想研究着做一个Spring框架,自然地就涉及到了Ioc容器对象创建的问题,研究怎么高性能地创建一个对象.第一联想到了Emit,兴致冲冲写了个Emit创建对象的工厂.在做性能测试 ...

  4. 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...

  5. 反射(4)反射性能问题:直接调用vs反射调用

    很多人都说使用反射会有性能问题,那到底会比直接调用慢多少呢,下面就来测试一下. 直接调用vs反射调用 下面就来写个demo来验证下直接调用和反射调用的性能差异,代码如下: namespace Cons ...

  6. C# 之 反射性能优化2

    问题回顾 在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用. 然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托? 如果我们将委托保存在字典集合中,会发现这种 ...

  7. Java的几种创建实例方法的性能对比

    近来打算自己封装一个比较方便读写的Office Excel 工具类,前面已经写了一些,比较粗糙本就计划重构一下,刚好公司的电商APP后台原有的导出Excel实现出现了可怕的性能问题,600行的数据生成 ...

  8. LongAdder和AtomicLong性能对比

    jdk1.8中新原子操作封装类LongAdder和jdk1.5的AtomicLong和synchronized的性能对比,直接上代码: package com.itbac.cas; import ja ...

  9. 如何利用缓存机制实现JAVA类反射性能提升30倍

    一次性能提高30倍的JAVA类反射性能优化实践 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第4期-支付结算部支付研发团队高级工程师陶红<JAVA类反射技术&优化> ...

随机推荐

  1. Solidworks安装界面是英文的解决办法

    [问题描述] 一样的安装文件,同事之前安装界面就是中文的,安装好以后软件也是中文的. 这几天系统挂了,重装系统后就发现安装界面是英文的,安装好以后也是英文. win7系统,位数不详,solidwork ...

  2. mac 下安装 lua5.3 + cjson

    1.lua 5.3的安装 直接去官网下载 http://www.lua.org/ftp/lua-5.3.3.tar.gz make macosx sudo make install 2.CSJON 编 ...

  3. maxscript, 批量导出物体

    1,将场景中所有选中物体整体导出为一个fbx文件 exportfile filename #noprompt selectedOnly:true using:FBXEXP 2,将场景中所有选中物体各导 ...

  4. Python 安装mysqldb

    切换目录: cd /usr/local/src/ 一.下载资源 wget http://sourceforge.net/projects/mysql-python/files/mysql-python ...

  5. win10-golang环境变量设置

    安装go 打开环境变量 添加GOPATH 添加到path 检验 在命令指示符下->go version or go env 配置 在F:\GOPATH下放置C:\go\bin->新建pkg ...

  6. NUnit笔记

    注意:单元测试中,Case 与 Case 之间不能有任何关系 测试方法不能有返回值,不能有参数,测试方法必须声明为 public [TestFixture] //声明测试类 [SetUp] //建立, ...

  7. Windows下使用命令行启动php

    E:\xampp\php>php-cgi.exe -b 127.0.0.1:9000 -c php.ini

  8. Chap5:32– 34

    32. 从 1 到 n 整数中 k (0,1, 2, 3, 4, 5, 6, 7, 8, 9)出现的次数.  时间 O(log10N) A. 当 K != 0 时: 以 n = 2014,K = 1 ...

  9. [Git].gitignore失效的原因

    使用git管理源代码已经成为现在开源社区的一大选择. 开发的人都知道,在源代码管理中,我们需要监控和备份的是代码,而不是开发过程中生成的exe和dll文件.//即使在某些时候,我们需要某些dll,我们 ...

  10. VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称 <转>

    昨天写了一个很小的winform程序,其中引用了自己写的两个dll文件. 本来认为轻松搞定,结果一编译居然提示:未能找到类型或命名空间名称..... 于是删掉两个dll重新引用,再编译结果依旧!很是郁 ...