java反射最佳实践,java反射性能测试分析
发布日期:2022-02-18 13:08:08 浏览次数:8 分类:技术文章

本文共 1039 字,大约阅读时间需要 3 分钟。

java反射性能测试分析

java有别于其他编程语言而让我着迷的特性有很多,其中最喜欢的是接口设计,他让我们设计的东西具有美感。同样反射也是我比较喜欢的一个特性,他让程序自动运行,动态加载成为了可能,同时也是现在很多流行框架所必不可少的特性,struts,hibernate等都是,spring本身就是基于反射的就更不用说了。细细想来,似乎很少有不涉及到反射的框架。我自己设计框架的时候,开始也都是运用反射,但是越深入却让我越疑惑,反射的效率一

直是我设计框架的心病。

今天在优化InstantMVC的时候就考虑怎么提高自动封装form的效率,struts是用的commons-beantuils,好像也没人说struts的效率不高,诚然,beanUtils中很多有用方便的特性让反射开发者着迷,但是通过我今天的测试,却发现beanUtils的易用性要付出巨大的性能代价,虽然在现在这个年代,这么点性能不算什么,但是对于我这种执着的人开发执着的框架,还是对性能有种独特的偏好,目前来说InstantMVC中用的是直接的反射简单封装,而InstantORM(我的持久层框架)中用到是自动生成pojo和相应的pojo辅助类来实现动态高效(比直接的反射高效10-20倍)执行 Object的方法(一般是get和set),对于InstantMVC的form利用动态生成辅助类有一定的难度,不是说实现难度,而是对于运用该框架的web开发者来说,不够直接。所以还是主要考虑用反射的,废话不说,下面

开始今天的测试。

首先,测试主要有三部分组成,测试创建对象的性能,测试set方法的性能,测试get方法的性能。我没有看过beanUtils的源代码,不过评我的经验想想BeanUtils应该是做了一些性能的优化的,初步猜测是第一次运行缓存Object的相应东东(具体是什么也不知道),所以测试的时候都是从第二次开始,忽略第一次。下面是测试代码(省略了异常抛

出。)

public class MyBean {

String name;

int age;

String[] firends;

public static void main(String args[]) {

Object o1=beanUtilsCreate();

Object o2=javaCreate();

MyBean my=new MyBean();

long a=System.currentTimeMillis();

转载地址:https://blog.csdn.net/weixin_28871097/article/details/115787415 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java中如何把时间封装成类,java-如何在不使用任何不推荐使用的类的情况下将日期从一种格式转换为另一种格式的日期对象?...
下一篇:高斯模型matlab程序代码,我找到的高斯混合模型的代码

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月09日 22时59分40秒