
jvm
文章平均质量分 75
jvm
乐之者v
快乐编程,一生编程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OOM dump文件分析及线程堆栈
可以看到,在出现 OutOfMemoryError 异常错误时进行了堆转储,导致 OutOfMemoryError 异常错误的线程 是哪一个。点击 Profiler ,再点击 Open Snapshot ,选择 上面的 dump 文件 D:/heapdump.hprof。打开 VisualVM 后,点击左上角的图标 ,装入, 文件名选择 之前的 dump 文件 D:/heapdump.hprof。这里的 D:/heapdump.hprof ,就是 dump 文件保存的路径。原创 2024-03-27 22:52:52 · 2006 阅读 · 0 评论 -
Jvm FullGC、 Oom 以及CPU占用100%,如何排查?
分析结果默认是以包为单位进行分组显示,分析内存泄漏问题主要会使用到其中的 “Heap Histogram”,可以找到内存中总量最大的对象。以下命令是将进程号为72的dump文件,输出到 /tmp/dump_file这个路径,也可以是其他任意路径。jps可以列出正在运行的jvm进程,并显示jvm执行主类名称( main()函数所在的类),以及进程id。搜索找到 nid=0x4f 的线程,就可以拿到线程的堆栈,找到出问题的代码了。我们主要观察FGC这个参数,可以发现,每隔几秒,FGC的次数就会变多。原创 2024-02-04 22:38:06 · 3278 阅读 · 0 评论 -
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space报错原因:JVM(java虚拟机)内存不足。比如一次性从数据库取出超大量数据时,内存可能会不够。滥用对象也可能导致堆内存不足。解决方案:加大JVM内存.参数如下:-Xms 设置JVM初始化堆内存大小 -Xmx 设置JVM最大的堆内存大小在Eclipse中 ,点击 Run -> Run Con...原创 2017-03-09 10:36:00 · 70 阅读 · 0 评论 -
java并发特性:原子性、可见性、有序性
要想并发程序正确地执行,必须要保证原子性、可见性以及有序性。只要有一个没有被保证,就有可能会导致程序运行不正确。1、原子性(Atomicity) 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。如果一个操作时原子性的,那么多线程并发的情况下,就不会出现变量被修改的情况比如 a=0;(a非long和double类型) 这个操作是不可...原创 2018-06-25 22:52:00 · 104 阅读 · 0 评论 -
java内存模型:简单理解
1.Java内存模型(Java Memory Model,JMM)2.JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory)。本地内存中存储了该线程以读/写共享变量的副本,本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化。3.重排...原创 2018-08-09 22:33:00 · 56 阅读 · 0 评论 -
java内存模型:Happens-Before
有序性:Java内存模型中的程序天然有序性可以总结为一句话:如果在本线程内观察,所有操作都是有序的;如果在一个线程中观察另一个线程,所有操作都是无序的。前半句是指“线程内表现为串行语义”,后半句是指“指令重排序”现象和“工作内存中主内存同步延迟”现象。volatile和synchronized两个关键字来保证线程之间操作的有序性,volatile关键字本身就包含了禁止指令重排序的语义,而syn...原创 2018-08-09 22:35:00 · 59 阅读 · 0 评论 -
《深入理解java虚拟机》笔记
二、java内存区域与内存溢出异常0.在内存管理领域,java与c/c++不同的是,在java虚拟机自动内存管理机制下,java不需要手动去为对象写配对的free内存的代码,不容易出现内存泄漏和内存溢出问题。1.程序计数器:一小块的内存空间,可看作当前线程所执行的字节码的行号指示器。每条线程都有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,称为“线程私有内存”。2.java虚拟...原创 2018-09-11 23:10:00 · 60 阅读 · 0 评论