更快地重复访问Java的Java类名?

Claes Redestad在core-libs-dev邮件列表上发布了消息“ RRF:8187123 :(反映)Class#getCanonicalName和Class#getSimpleName是性能问题的一部分 ”,他在邮件列表中要求审查建议的更改“以启用缓存”的另一方面,getCanonicalName和getSimpleName ,重复这已报告是一个性能瓶颈的电话。” 他补充说:“缓存将这些方法的性能提高了20倍。”

解决性能问题的一个明显解决方案可能是将类的名称作为字段添加到Class类定义中,但是Redestad在关联的错误JDK-8187123中指出:“我们应避免在java.lang中添加更多字段。班级 。” 取而代之的是,该错误的解决方法是“ 背负在ReflectionData中缓存的其他反射信息 ”。

ReflectionData是在Class类中定义的一个嵌套( private static )类。 Class类对ReflectionData的引用定义为:

private volatile transient SoftReference<ReflectionData<T>> reflectionData;

Class实例包含对嵌套类ReflectionData的实例的软引用 ( java.lang.ref.SoftReference )。 用于SoftReference的类级别的Javadoc指出,“软引用是由垃圾收集器根据内存需求自行决定清除的”,并且软引用“最常用于实现对内存敏感的缓存”。 这似乎是平衡性能和内存问题的不错的解决方案。

邮件列表消息引用了对Class.java的建议更改的链接 。 回顾这些更改,您可以快速看到建议的代码更改如何将三个新的String添加到ReflectionData实例中包含的属性中,以表示规范名称,简单名称和类型名称。 当然,三种方法提供向这些细节[ 另一方面,getCanonicalName() , getSimpleName() ,和getTypeName() ]被改变为使用这些值。

在撰写本文时, JDK-8187123尚未与特定的Java版本关联。

翻译自: https://www.javacodegeeks.com/2018/05/faster-repeated-access-to-java-class-names-coming-to-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中cast函数_mysql中cast函数的使用 用于强制类型转换 (转载)

例子&#xff1a;SELECTstr_to_date(concat(year(a.tb_time),date_format(a.tb_time,%m),01),%Y%m%d) tb_time,cast(a.category_id as char) category_id,a.category_name,sum(a.tendered_sum)/sum(a.winbid) tendered_sum,sum(a.winbid_sum)/sum(a.winbid) winbid_avgfrom( SE…

dht11温湿度传感器_Arduino不调用库实现DHT11数据读取

DHT11概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;它应用专用的数字模块采集技术和温湿度传感技术&#xff0c;确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件&#xff0c;并与一个高性…

rete_RIP RETE时间来获得PHREAKY

rete我刚刚完成了有关新规则算法PHREAK的高级文档&#xff0c;PHREAK是混合推理中的一个文字游戏。 它仍然有点粗糙和高水平&#xff0c;但希望仍然很有趣。 它建立在ReteOO之上&#xff0c;非常好阅读。 ReteOO算法 ReteOO是在3、4和5系列发行版中开发的。 它采用了RETE算法并…

mysql 存储过程 插入记录_mysql 存储过程 插入记录

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

Java技巧:创建监视友好的ExecutorService

在本文中&#xff0c;我们将扩展具有监视功能的ExecutorService实现。 这种监视功能将帮助我们在实时生产环境中测量多个池参数&#xff0c;即活动线程&#xff0c;工作队列大小等。 它还将使我们能够衡量任务执行时间&#xff0c;成功任务计数和失败任务计数。 监控库 至于监…

java如果把字符串转成对象_Java中的重复对象:不仅仅是字符串

当Java应用程序消耗大量内存时&#xff0c;它本身就会出现问题&#xff0c;并可能导致GC压力增加和GC暂停时间过长。在我之前的一篇文章中&#xff0c;我讨论了Java中常见的内存浪费源&#xff1a;重复字符串。两个 java.lang.String 对象&#xff0c; a 并 b 在重复时 a ! b &…

mysql五大子句_MySQL的查询语句中可以使用以下哪个子句来表示分组查询

【多选题】人类行为遗传学工作者倾向于把人的行为遗传分为哪几类【填空题】MySQL的连接操作包括内连接、( )和交叉连接。【判断题】社会生活类尤其是人文风光类纪录片的解说则多用文学、 散文手法, 既抒情又有解释说明, 语言华丽富于美感,情感真挚浓郁。【单选题】1 、作业区边…

批处理 设置电脑最佳性能_批处理最佳做法

批处理 设置电脑最佳性能大多数应用程序至少具有一个批处理任务&#xff0c;在后台执行特定的逻辑。 编写批处理作业并不复杂&#xff0c;但是您需要了解一些基本规则&#xff0c;我将列举一些我发现最重要的规则。 从输入类型的角度来看&#xff0c;处理项目可以通过轮询处理…

layui登录页面写入数据_layui基本使用(动态获取数据,并把需要的数据传到新打开的窗口)...

\n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ ‘ item.TITLE ‘\n‘ ‘ ‘ item.ZDRQ ‘\n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ \n‘ ‘ ‘ item.CDATE ‘\n‘ ‘ ‘ item.TJR ‘\n‘ ‘ \n‘ ‘ \n‘ ‘ ‘‘//消息的跳转页面$(".xiaoxi").click(fu…

mysql 5.6自动任务_mysql定时执行某任务

查看event是否开启: show variables like %sche%;将事件计划开启: set global event_scheduler1;关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE;开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;简单实例.创建表 CREATE TABLE test(endti…

JVM体系结构:JVM类加载器和运行时数据区

各位读者好&#xff01; 在JVM系列的上一篇文章中&#xff0c;开发人员了解了Java虚拟机&#xff08;JVM&#xff09;及其体系结构。 本教程将帮助开发人员正确回答以下主题的问题&#xff1a; ClassLoader子系统 运行时数据区 1.简介 在继续之前&#xff0c;让我们看一下Ja…

mysql flush cache_mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法

转自&#xff1a;http://www.169it.com/article/5994930453423417575.html为了测试sql语句的效率&#xff0c;有时候要不用缓存来查询。使用SELECT SQL_NO_CACHE ...语法即可SQL_NO_CACHE的真正作用是禁止缓存查询结果&#xff0c;但并不意味着cache不作为结果返回给query。目前…

-%3erow mysql_MySQL查询优化

# MySQL查询优化* [请简述项目中优化MySQL语句执行效率的方法&#xff0c;从哪些方面入手&#xff0c;SQL语句性能如何分析&#xff1f;](https://www.kancloud.cn/ranjun940726/php_interview/596348#MySQLSQL_3)* [分析查询速度](https://www.kancloud.cn/ranjun940726/php_i…

apache karaf_Apache Karaf遇到Apache HBase

apache karaf介绍 Apache HBase是一个以Google Bigtable为蓝本的开源&#xff0c;分布式&#xff0c;版本化&#xff0c;面向列的商店。 如果您是普通读者&#xff0c;那么您可能已经知道Apache Karaf是什么&#xff0c;但是对于那些不是的读者&#xff1a;Apache Karaf是一个O…

mysql5.6特性_MySQL5.6新版本特性

MySQL已发布新的系列版本5.6.x&#xff0c;如果打算升级的朋友可以尝试&#xff0c;虽然目前没有收到新版本的使用反馈&#xff0c;但凭借MySQL占据市场份额来看&#xff0c;新版本的确值得期待。五大特性&#xff1a;优化器的改进MySQL Optimizer 团队做了大量的工作为了不断的…

实现threadlocal_ThreadLocal如何实现?

实现threadlocal这是我上周的帖子的后续文章&#xff0c;其中我解释了ThreadLocal用法背后的动机 。 从帖子中我们可以回忆起&#xff0c;如果您希望为每个线程拥有一个独立初始化的变量副本&#xff0c;则ThreadLocal确实是一个很酷的概念。 现在&#xff0c;好奇的人可能已经…

mysql timeout的单位_mysql的timeout-阿里云开发者社区

mysql的timeout很多时候我们连接mysql会在timeout这里跌倒&#xff0c;这里明确下mysql的timeout&#xff1a;下面是获取timeout的变量&#xff1a;mysql> show global variables like "%timeout%";---------------------------------------| Variable_name | Val…

带有Spring Boot 2.0的Spring Security:UserDetailsS​​ervice

正如我们在上一篇文章中所看到的&#xff0c;我们的spring应用程序的用户名和密码是通过环境变量配置的。 这对于原型目的是可以的&#xff0c;但是在现实生活中&#xff0c;我们必须提供另一种方式来使用户有资格登录到该应用程序。 为此&#xff0c;我们使用UserDetailsS​​…

java计算整数出现的次数_[剑指offer题解][Java]1到n整数中1出现的次数

前言众所周知&#xff0c;《剑指offer》是一本“好书”。如果你是个算法菜鸡&#xff08;和我一样&#xff09;&#xff0c;那么最推荐的是先把剑指offer的题目搞明白。对于剑指offer题解这个系列&#xff0c;我的写作思路是&#xff0c;对于看过文章的读者&#xff0c;能够做到…

mysql数据库+ssh框架_SSH框架+Mysql数据库开发java web会员积分消费管理系统

项目描述会员消费管理&#xff1a;会员信息调取查询、会员消费商品添加金额计算、兑换商品等会员管理&#xff1a;会员增删改查积分管理&#xff1a;积分设置、商品积分设置等积分兑换、数据库备份还原、折扣管理、商品管理等运行环境jdk7(8)tomcat7(8)mysql5.7myeclipes或ecli…