历史潮流浩浩荡荡,顺之则昌,逆之则亡。——孙中山

 分类:JAVA

JVM性能调优实战之UseParallelGC

JVM性能调优实战之UseParallelGC
前言 在生产环境中,你是否遇到过这样的问题? 1)系统运行一段时间后old区空间正逐渐减少? 2)遇到秒杀促销活动等场景old区存储突然暴增,导致JVM Full GC。fgc time持续过长导致cpu 100%? 3)jvm eden区分配的内存实际并没有按照配置的指定?s...

徐承恩 4个月前 (06-11) 179℃ 9喜欢

Java实现LFU算法

Java实现LFU算法
LFU(Least Frequently Used)算法,即最少访问算法,根据访问缓存的历史频率来淘汰数据,核心思想是“如果数据在过去一段时间被访问的次数很少,那么将来被访问的概率也会很低”。 手撕LFU算法 package com.github.xuchengen.cache;...

徐承恩 6个月前 (04-12) 269℃ 5喜欢

Java实现LRU算法

Java实现LRU算法
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。 该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最少使用的页面...

徐承恩 6个月前 (04-12) 253℃ 3喜欢

生产环境Java项目CPU飙升100%排查

生产环境Java项目CPU飙升100%排查
Java线上项目CPU飙升100%排查步骤 # 使用TOP命令查看进程ID top # 使用top命令查看线程ID top -H -p {进程ID} # 转换线程ID为16进制便于后续搜索 printf '%x' {线程ID} # 使用jstack命令导...

徐承恩 7个月前 (03-07) 277℃ 11喜欢

解决Mac高版本系统不能安装JDK6的问题

解决Mac高版本系统不能安装JDK6的问题
公司部分业务系统依然使用的JDK6,然后便有了下文。 苹果官方JDK6下载地址:https://support.apple.com/kb/dl1572?locale=zh_CN 苹果高版本Mac系统已经不允许直接运行dmg包安装JDK6,以下脚本请用Apple script运行,...

徐承恩 7个月前 (02-23) 338℃ 6喜欢

使用Java实现负载均衡算法

使用Java实现负载均衡算法
说到负载均衡我们首先会想到Nginx负载均衡策略,在Nginx中支持5种负载均衡策略他们分别是:轮询、加权轮询、ip_hash、fair、url_hash。 概念 负载均衡是将客户端请求访问,通过提前约定好的规则转发给各个server。其中有好几个种经典的算法,下面我们用Java...

徐承恩 12个月前 (10-08) 446℃ 26喜欢

SpringBoot通用日志解决方案

SpringBoot通用日志解决方案
金融项目中对于业务较为敏感我们通常需要将用户的操作形成一个结构化的数据并进行持久化。 结构化日志需要的字段: 操作员信息、客户端IP地址、请求地址、控制器名称、控制器方法名称、HTTP请求类型、HTTP请求参数。 问题描述: 在获取请求参数时必然会读取request.getInp...

徐承恩 2年前 (2020-10-22) 1124℃ 4喜欢

InvalidKeyException: Illegal key size异常解决方案

InvalidKeyException: Illegal key size异常解决方案
测试环境的出款定时任务大量抛出InvalidKeyException: Illegal key size异常,根据以往经验初步判断是加密出现问题需要安装JCE相关的包。 产生错误原因 为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使...

徐承恩 2年前 (2020-06-04) 2873℃ 85喜欢

Java的JIT即时编译及其优化

Java的JIT即时编译及其优化
Oracle的Hotspot JVM实现,是目前OpenJDK使用的主流JVM,它采用解释与编译混合执行的模式,其JIT技术采用分层编译,极大地提升了Java的执行速度。 Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行的特别频繁时,会把这些代码认定为...

徐承恩 2年前 (2020-06-02) 1268℃ 1喜欢