首页
学习
活动
专区
工具
TVP
发布

ReflectASM-invoke,高效率java反射机制原理

所以我们只能想办法优化反射,而不能抵制反射,那么优化方案,这里给大家推荐了ReflectASM。 一、性能对比 我们先通过简单的代码来看看,各种调用方式之间的性能差距。...缓存反射耗时"+(System.currentTimeMillis() - now) + "ms秒); //---------------------reflectasm...System.currentTimeMillis() - now) + "ms); } 每种方式执行500W次运行结果如下: get耗时21ms 标准反射耗时5397ms 缓存反射耗时315ms reflectasm...而reflectasm反射效率要在java传统的反射之上快了接近1/3. 二、reflectasm原理解析。 ReflectASM是一个很小的java类库,主要是通过asm生产类来实现java反射。...但是它的get方法同样会消耗很大的时间,因此就算是使用ReflectASM的朋友也记得请在启动的时候就初始化get方法计入缓存。

2.3K150

java高性能反射及性能对比

由于项目里存在反射的性能瓶颈,使用的是ReflectASM高性能反射库来优化。 因此,在空闲时间研究了下的这个库,并做了简单的Beachmark。 介绍 ReflectASM是使用字节码生成来加强反射的性能。 反射包含多种反射,这个库很简单,它提供的特性则是: 根据匹配的字符串操作成员变量。 根据匹配的字符串调用成员函数。...所以,如果在代码中封装这样的一个函数试图使用ReflectASM库: Object reflectionInvoke(Object bean, String methodName) { MethodAccess...最后总结 在使用ReflectASM对某类进行反射调用时,需要预先生成或获取字节码动态生成的MethodAccess子类对象。...如果是自己里面ReflectASM封装工具类,则应该设计缓存,缓存生成的MethodAccess对象。 如果不这样做,这个ReflectASM用的没有任何意义,性能还不如java的原生反射。

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

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

类反射的性能优化不是什么新课题,因此有一些成熟的第三方解决方案可以参考,比如运用比较广泛的ReflectASM,据称可以比未经优化的类反射代码提高1/3左右的性能。...(参考资料:Java高性能反射工具包ReflectASMReflectASM-invoke,高效率java反射机制原理) 在研究了ReflectASM的源代码以后,我们决定不使用现成的第三方解决方案,...主要基于两点考虑: ReflectASM的基本技术原理,是在运行期动态分析类的结构,把字段、函数建立索引,然后通过索引完成类反射,技术上并不高深,性能也谈不上完美; 类反射是我们系统使用的关键技术,使用场景...思路和实践:缓存优化 前面提到ReflectASM给类的字段、函数建立索引,借此提高类反射效率。进一步分析,这实际上是变相地缓存了字段和函数。

2.7K32

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券