自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hashcon

曾任职于顺丰,华为,网易等公司,从Java小白,成长为资深开发与项目组首席架构师。喜欢源码与开源,曾贡献 MyCat1.6 与 JFRUnit 核心源码,贡献过Spring Cloud,Apache RocketMQ,Apache Bookeeper,Du

  • 博客(9)
  • 收藏
  • 关注

原创 深度探索JFR - JFR详细介绍与生产问题定位落地 - 3. 各种Event详细说明与JVM调优策略(2)

2. JAVA 应用相关2.4. Java Monitor 同步锁相关主要是三种 Event:当进入同步块,尝试获取锁的时候,产生 JavaMonitorEnter Event;当调用 Object.wait() 进入等待时,会产生 JavaMonitorWait Event;当 锁升级(另一种说法是锁膨胀)时,产生 JavaMonitorWait Event。下面我从网上看到的这张图,有...

2020-04-07 19:48:05 58728

原创 深度探索JFR - JFR详细介绍与生产问题定位落地 - 3. 各种Event详细说明与JVM调优策略(1)

Event 采集详细配置目前,JDK 11 一共有136个 Event 采集配置。这里会比较详细的去看每一个Event,并说明基本应用,建议配置。如果 default.jfc 中没有打开或者需要修改的配置,会将配置文件代码发出来。1. JFR 相关 Event一共4个 Event,但是需要关心的就下面这两个Data Loss:数局丢失 Event,当有数据发生丢失时,会有这个Event ...

2020-04-03 18:11:55 59348

原创 深度探索JFR - JFR详细介绍与生产问题定位落地 - 2. 通过一个线上调优例子了解JMC 与 Event 结构与详细配置

查看 JFR 事件的工具 - JMC (Java Mission Control)官网地址:https://adoptopenjdk.net/jmc.html国内下载起来比较慢,建议在aws上面建一个欧洲法兰克福的实例,在这个实例上先下载好,然后传输到本地。或者直接用我下面提供的连接下载,我也会跟着官网上面的版本进行更新的。我的私人下载地址:https://zhxhash-blog.oss-...

2020-04-01 16:52:53 60083

原创 深度探索JFR - JFR详细介绍与生产问题定位落地 - 1. JFR说明与启动配置

本文基于 OpenJDK 11 并涉及一些之后版本的特性,非 OpenJDK 11 的特性会被特殊标记出来什么是 JFR?我们都知道,黑匣子是用于记录飞机飞行和性能参数的仪器。在飞机出问题后,用于定位问题原因。JFR 就是 Java 的黑匣子。JFR 是 Java Flight Record (Java飞行记录) 的缩写,是 JVM 内置的基于事件的JDK监控记录框架。这个起名就是参考了...

2020-04-01 11:04:22 62970 4

原创 Java本地缓存框架系列-Caffeine-1. 简介与使用

Caffeine 是一个基于Java 8的高性能本地缓存框架,其结构和 Guava Cache 基本一样,api也一样,基本上很容易就能替换。 Caffeine 实际上就是在 Guava Cache 的基础上,利用了一些 Java 8 的新特性,提高了某些场景下的性能效率。这一章节我们会从 Caffeine 的使用引入,并提出一些问题,之后分析其源代码解决这些问题来让我们更好的去了解 Caffe...

2020-04-24 16:00:40 7731 1

原创 JEP解读与尝鲜系列2 - JEP 142 缓存行填充简化

本文基于 OpenJDK 8 ~ 14 的版本JEP 142 内容用于将某个或者某些需要多线程读取和修改的 field 进行缓存行填充。同时由于 Java 8 之前对于缓存行填充的方式,比较繁琐且不够优雅,还有可能缓存行大小不一的问题,所以这个 JEP 中引入了 @Contended 注解。什么是缓存行填充以及 False SharingCPU 缓存结构:CPU 只能直接处理寄存器...

2020-04-18 15:28:12 617

原创 通过一些常见问题回顾Maven依赖中容易犯错的点

原文地址: http://andresalmiray.com/maven-dependencies-pop-quiz-results/网上看到这篇文章,感觉很有价值,弄清了一些我之前理解错的点,这里翻译并分享下.首先,先上一下我个人总结的结论:Maven依赖可以分为如下几部分:直接依赖,就是本项目 dependencies 部分的依赖间接依赖,就是本项目 dependencies ...

2020-04-15 16:53:20 376

原创 MySQL分割一行为多行的思路

最近数据分析有需求,分析运营活动短信用户,但是发送短信的用户是通过 JSON 字符串数组存储在一个 text 字段的。内容类似于:["user1", "user2", "user3"....]数据分析想分析这些用户,那么就需要 in 这些用户查询。自己手动拼 SQL 太蛋疼,而且好几万几十万的用户,拼成SQL,复制粘贴也够蛋疼的。那么可以考虑将这一行分割为多行,作为一个字段。mysql.h...

2020-04-15 12:01:13 1577

原创 增强 Stream 接口的 distinct 方法的一些思考

遇到的问题Java 8 开始引入了 Stream, 其中的 api 一直在不断的优化更新完善,Java 9 中更是引入了 ofNullable 还有 takeWhile 和 dropWhile 这两个关键 api。有时候,我们想对 Stream 中的对象进行排重,默认的可以用 distinct 这个 api,例如:List<String> collect = Arrays.stre...

2020-04-14 17:59:07 1469 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除