注解和反射13.性能对比分析

简介: 注解和反射13.性能对比分析
public static void test01(){
        User user = new User();
        long startTime = System.currentTimeMillis();
        for (int i = 0;i<1000000000;i++){
            user.getName();
        }
        long endTime = System.currentTimeMillis();
        System.out.println("普通方法执行10亿次"+(endTime-startTime)+"ms");
    }
    public static void test02(){
        User user = new User();
         User user=  user.getclass();
        Method getName =  user.getDeclaredMethod("getName",null);
        long startTime = System.currentTimeMillis();
        for (int i = 0;i<1000000000;i++){
            getName.invoke("user",null);
        }
        long endTime = System.currentTimeMillis();
        System.out.println("反射方式执行10亿次"+(endTime-startTime)+"ms");
    }
    public static void test03(){
        User user = new User();
        long startTime = System.currentTimeMillis();
        get.Name.setAccessible(true);
        for (int i = 0;i<1000000000;i++){
            user.getName();
        }
        long endTime = System.currentTimeMillis();
        System.out.println("关闭监测执行10亿次"+(endTime-startTime)+"ms");
    }


然后写一个main方法,去调用三个方法

反射方法的时间最长,然后关闭监测执行的最后普通方式执行的最快

相关文章
|
26天前
|
存储 缓存 安全
ReflectionUtils提高反射性能!
【10月更文挑战第14天】本文介绍了如何使用Spring框架的`ReflectionUtils`工具类来提高反射操作的性能。通过对比原生反射API与`ReflectionUtils`在创建实例、调用方法和设置字段值等方面的性能,展示了`ReflectionUtils`在多次调用时显著的性能优势。文章还深入分析了`ReflectionUtils`的源码,揭示了其通过缓存机制和减少对象创建次数来提升性能的秘密。最后,作者建议在项目中遇到反射需求时优先考虑使用`ReflectionUtils`。
|
6月前
|
JSON 前端开发 Java
数据映射框架之三大神器:反射、注解、动态代理
数据映射框架之三大神器:反射、注解、动态代理
56 3
数据映射框架之三大神器:反射、注解、动态代理
|
Java
反射--JavaJEE基础
反射--JavaJEE基础
68 0
|
前端开发 编译器 容器
|
JavaScript 前端开发 Java
注解与反射5.反射概述
注解与反射5.反射概述
|
算法 安全 C#
C#反射与特性(一):反射基础
C#反射与特性(一):反射基础
266 0
C#反射与特性(一):反射基础
|
程序员 编译器 API
C#反射与特性(九): 全网最全-解析反射
C#反射与特性(九): 全网最全-解析反射
351 0
C#反射与特性(九): 全网最全-解析反射
|
Oracle Java 关系型数据库
反射使用的步骤
反射使用的步骤
134 0
|
缓存 Oracle IDE
深入分析Java反射(八)-优化反射调用性能
Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行Debug。
386 0