相关疑难解决方法(0)

硬件和软件断点之间有什么区别?

硬件和软件断点之间有什么区别?

硬件断点是否比软件断点更快,如果是,那么如何,以及为什么我们需要软件断点呢?

debugging gdb breakpoints

30
推荐指数
4
解决办法
4万
查看次数

解释jemaloc数据可能在堆外泄漏

我在2周前开始搜索不断增长的java内存.我使用以下命令来防止堆增长过多,并进行一些调试.

我正在使用oracle java 8在Ubuntu 16.04上运行,因为openjdk 8没有调试符号我需要让jemaloc提供正确的数据

-XX:NativeMemoryTracking=detail -XX:+UseG1GC -XX:+UseStringDeduplication -Xms64m -Xmx256m -XX:MaxMetaspaceSize=128m -Xss256k
Run Code Online (Sandbox Code Playgroud)

如你所见,我的Xmx设置为256米.但是top目前我的流程显示为1.1G

在使用JProfiler和JVisualVm I以及我在google上可以找到的许多其他东西后,我得出的结论是,这必然是一个堆外问题.

经过多次搜索,我遇到了jemaloc,我读到的关于它的文章似乎很有希望.但是现在解释这些数据我遇到了一些问题.并找出如何指出我的问题的根源.

最高内存使用率

jemaloc图

本机内存跟踪数据

Native Memory Tracking:

Total: reserved=1678MB, committed=498MB
-                 Java Heap (reserved=256MB, committed=256MB)
                            (mmap: reserved=256MB, committed=256MB)

-                     Class (reserved=1103MB, committed=89MB)
                            (classes #14604)
                            (malloc=3MB #32346)
                            (mmap: reserved=1100MB, committed=85MB)

-                    Thread (reserved=26MB, committed=26MB)
                            (thread #53)
                            (stack: reserved=26MB, committed=26MB)

-                      Code (reserved=261MB, committed=96MB)
                            (malloc=17MB #17740)
                            (mmap: reserved=244MB, committed=79MB)

-                        GC (reserved=1MB, committed=1MB)
                            (mmap: reserved=1MB, committed=1MB)

-                  Internal (reserved=6MB, committed=6MB)
                            (malloc=6MB #48332) …
Run Code Online (Sandbox Code Playgroud)

java jvm

2
推荐指数
1
解决办法
581
查看次数

标签 统计

breakpoints ×1

debugging ×1

gdb ×1

java ×1

jvm ×1