-
Java Arena Area 内存占用过高问题
现象 使用top命令查看到Java内存RSS占用过高,堆内存并没有很大。 排查 使用pmap -x pid查看有很多anon,内存占用。 [root@local
-
Java 进程使用的内存组成
内存组成 VM 内存 Heap堆内存 Young Gen新生代 Old Gen老年代 Perm Gen永久代(JDK <=7) Non Heap 非
-
Java 设置堆内存的最大值和最小值的几种方式
InitialHeapSize 默认值:物理内存的1/64。 举例: -Xms100M MaxHeapSize 默认值:物理内存的1/4。 举例:-Xmx1G、
-
Java 命令行 -XshowSettings 查看 JVM 配置
showSettings 显示JVM的配置。 -XshowSettings:category 显示不同category的配置。 category=vm 显示最大
-
Java 日志中异常信息缺少堆栈信息
现象 生产环境下日志输出的异常只有一行异常名称,没有具体的堆栈信息。 示例 public class OmitStackTraceInFastThrowDemo
-
Java 查看虚拟机日志
默认日志 不配置启动参数,默认是warning级别,输出uptime、level、tags三个标识符。 -Xlog:all=warning:stdout:upt
-
Java CDS 类数据共享 Class Data Sharing
作用 类数据共享。 减少启动时间,降低内存占用。 注意:必须由多个JVM。 文件位置 Linux/macOS: $JAVA_HOME/lib/server/c
2023-12-11, Views: 762 , Topics: Java
-
Java LockSupport 几种唤醒机制
暂停线程 LockSupport使用park系列方法底层调用C++代码来暂停线程。 唤醒线程 LockSupport的park方法上有一段注释: Some o
-
状态值 0 到 1 和 1 到 0 切换
需求 修改状态位,由0变为1,由1变为0。 方法一 使用1-var实现。 // 0 -> 1 int status = 0; status = 1 -
2023-12-07, Views: 494 , Topics: Java
-
Java 计算分页参数 page 和 size 三种方法
方法一(推荐) //总记录数 int rows=21; //每页显示的记录数 int pageSize=5; //页数 int pageSum=(row
2023-12-06, Views: 719 , Topics: Java
-
PostgreSQL timestamp 与 timestamptz 区别
相同点 都占用8字节。 存储时没有本质区别,都不携带时区信息。 不同点 insert returning和select时返回给客户端数据时不同。 inse
2023-11-11, Views: 1081 , Topics: PostgreSQL Java
-
使用 SDKMAN! 管理 JDK
安装 执行安装命令 curl -s "https://get.sdkman.io" | bash 安装完成刷新环境变量 source "/root/.sdkman/bin/sdkman-init.
-
Linux smaps_rollup 及 status 查看 Java 进程内存占用
需求 排查Java进程频繁被Kubernetes的OOMKiller,需查看Java进程占用的总内存。 Java除了堆内存外,还有非堆内存和堆外内存。 排查工具
-
SonarQube Java 单元测试覆盖率为零解决方法
现象 在IDEA中使用Run with Coverage能显示覆盖率。 但SonarQube中一直显示覆盖率为0。 解决方法 对于Maven构建的项目,添加ja
-
Java jstat 查看类加载、卸载情况
命令 jstat -class 1 输出 bash-4.4# jstat -class 1 Loaded Bytes Unloaded Bytes
-
Java VisualVM 排查内存泄漏
深堆大小 右下角Dominators by Retained Size中,点击Compute Retained Sizes计算深堆大小,才能查看到具体引用的类和
-
Java jcmd 报 AttachNotSupportedException: Unable to open socket file
错误信息 com.sun.tools.attach.AttachNotSupportedException: Unable to open socket fil
-
Java 无法 debug Finalizer 类
需求 看一下Finalizer如何被初始化,以及完整调用链路。 无法 debug 原因 Finalizer在JVM启动时就已经加载,即:还没加载到我们自己写的m
2023-06-28, Views: 585 , Topics: Java
-
Java jps 无法显示进程 id
现象 Linux上使用jps查看进程id,无法显示运行的Java进程。 命令原理 jps、jstack、jcmd等命令默认查看的是/tmp/hsperfdata
-
Java jmap 强制 attach 到 JVM 报错
现象 使用jmap -F导出堆栈信息,抛出以下错误: Error: -F option used Cannot connect to core dump or