ecache缓存比直接用反射更慢,求解?

我看见佛 2018-06-10 08:55:32

getXfColumnByClass运行时间:22ms
getXfColumnByCache运行时间:16660ms

不是说用缓存代替反射吗?为什么我用缓存后更慢了哇?
...全文
14693 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
shrek11 2021-03-16
  • 打赏
  • 举报
回复
这还要想吗 一个跨了进程 一个没
沉思有倾 2020-10-28
  • 打赏
  • 举报
回复
个人认为缓存和反射可以说是不相关的模块。 所谓的缓存实现反射无非两种: 1 将反设可以前置的动作都缓存起来,要反射时从缓存里拿,拿来直接反射 2 数据存缓存里,不用再通过发射获取了
LQW_home 2020-07-09
  • 打赏
  • 举报
回复
最重要的是spring cache 依赖spring容器 你起容器了吗
LQW_home 2020-07-09
  • 打赏
  • 举报
回复
你这根本就没用到缓存 因为第一次访问
梦在明月 2020-07-01
  • 打赏
  • 举报
回复
你这个方法走了aop了吧 你aop里面干了啥 谁知道啊
冰思雨 2020-06-08
  • 打赏
  • 举报
回复
楼主啊, 数据缓存 和 反射,是两个概念的。 反射的主要功能是加载和分析类信息,之后可以调用构造器创建对象,调用对象的方法等等。 数据缓存的主要功能是提高数据访问的效率。 反射的过程中,唯一涉及到数据访问的地方,应该就是类加载的时候,和创建对象的时候了吧。 总觉得两者没有可比性啊。 还有啊,Java中的 ClassLoader 对象,是有内置缓存的,一旦加载过某个类之后,再次调用loadClass方法(或相关的方法),是不会产生IO操作的。 我们都知道,程序中有IO访问,会造成线程等待,从而使整体速度变慢。 ehcache 有几种模式的吧。如果是嵌入式使用的话,效率应该是最高的。如果你将ehcache单独启动或者还弄成分布式的缓存,那么,访问ehcache会造成IO操作,从而使整体速度有所降低。
wongji 2020-05-21
  • 打赏
  • 举报
回复
下载还需要分数。我是零分咋办
hzldds2019 2020-04-20
  • 打赏
  • 举报
回复
感觉使用姿势有问题
既...来... 2020-01-09
  • 打赏
  • 举报
回复
不错!不错!
zigua234 2019-11-15
  • 打赏
  • 举报
回复
学习下111111111111
我看见佛 2019-08-28
  • 打赏
  • 举报
回复
引用 16 楼 像忘了谁sq 的回复:
兄弟,你缓存类干啥?缓存一般都是缓存一些经常调用的数据吧
只是测试对比了解下
我看见佛 2019-08-28
  • 打赏
  • 举报
回复
引用 15 楼 夕目山 的回复:
窥视中。。。
只是测试对比了解下
我看见佛 2019-08-28
  • 打赏
  • 举报
回复
引用 17 楼 baichangda234 的回复:
现在jdk同一种类、方法、字段反射一次以后,已经默认帮你缓存了
好像听说也是,Jdk进行优化过了
baichangda234 2019-08-12
  • 打赏
  • 举报
回复
现在jdk同一种类、方法、字段反射一次以后,已经默认帮你缓存了
像忘了谁sq 2019-07-26
  • 打赏
  • 举报
回复
兄弟,你缓存类干啥?缓存一般都是缓存一些经常调用的数据吧
bigkai12138 2019-05-18
  • 打赏
  • 举报
回复
窥视中。。。
  • 打赏
  • 举报
回复
1. 反射前几次调用, 是使用了Native实现的性能相对较差, 但是当调用次数到了一定的阀值后, 会自动生产字节码类, 进行JIT优化,就和普通调用一样了,所以循环中执行的就是普通调用 2. ecache框架中有许多逻辑代码和校验代码,和普通调用,你觉得哪个比较快?
VictorJon 2019-01-16
  • 打赏
  • 举报
回复
赵牧野 2018-12-20
  • 打赏
  • 举报
回复
要知道你的循环次数得有多少,这个次数,缓存已经很快了。 再者就是你的例子,缓存先是反序列化,然后看看你方法里还有没有其他的操作? 两个例子其他的操作是否一致?对照试验最重要的是保证一个量不同,其他的量完全相同,否则就不科学。 即便其他因素都没问题,还要考虑你的class的复杂性对反序列化和发射的影响,性能曲线会有交叉也说不定。 这个问题你研究深了,需要考虑的东西很多。
御灵龍 2018-12-19
  • 打赏
  • 举报
回复
反射机制:能够获取自身的属性和方法。
优点:能够动态创建和获取对象,实现解耦合
缺点:对性能有一定的影响。与直接操作某条数据想比,要慢一些。
在来说缓存,以查询数据库为例,当第一次查询的时候, 会执行sql语句,当第二次查询的之后,会直接读取缓存,不在操作数据库。

所以使用缓存要比使反射快。
只不过你写的程序是在操作文件吗?你用两者查询数据库试试。
加载更多回复(8)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧