- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 深入理解java虚拟机学习-5
一是一般不会在部署应用程序的服务器上直接分析堆转储快照,即使可以这样做,也会尽量将堆转储快照文件复制到其他机器上进行分析,因为分析工作是一个耗时而且极为耗费硬件资源的过程,既然都要在其他机器上进行,就没有必要再受命令行工具的限制了。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的 目的通常是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂 起等,都是导致线程长时间停顿的常见原因。如图,survivor0,survivor1(s0,s1)占比0%;
2023-06-27 11:24:15
75
1
原创 深入理解java虚拟机学习-4
更具体的处理思路是让G1收集器去跟踪各个Region里面的垃圾堆积的“价值”大小,价值即回收所获得的空间大小以及回收所需时间的经验值,然后在后台维护一 个优先级列表,每次根据用户设定允许的收集停顿时间(使用参数-XX:M axGCPauseM illis指定,默 认值是200毫秒),优先处理回收价值收益最大的那些Region,这也就是“Garbage First”名字的由来。用通俗的话讲,垃圾回收,其实也就是收拾房间的垃圾,如果你一边在打扫,你的宝宝还在制造新的垃圾,这样房间里的垃圾还能收拾好吗?
2023-06-20 17:27:46
71
原创 深入理解java虚拟机学习-3
垃圾收集,即GC操作。当一些对象不在使用的时候,java虚拟机就需要将这些对象的内存数据給回收掉。那么实际上,垃圾回收需要解决三个问题。
2023-06-19 16:54:04
81
1
原创 深入理解java虚拟机学习-2
在对象创建完成之后,java程序会通过栈上的reference(指针/引用)数据来操作堆上的具体对象。对象在堆内存中的存储布局可以划分为三个部分: 对象头(Header), 实例数据(Instance Data)和对齐填充(Padding)。
2023-06-17 11:22:48
64
1
原创 C++中嵌套使用python代码
代码如下 #include <Python.h> #include <iostream> using namespace std; int main() { Py_Initialize(); PyObject* pModule = NULL; PyObject* pFunc = NULL; pModule = PyImport_ImportModule("test"); pFunc = PyObject_GetAttrString(pMo
2020-12-30 22:23:47
585
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人