问题描述
我正在使用jna调试具有某些本机代码的Java应用程序中的内存泄漏问题,我正在使用Valgrind,我发现由valgrind启动的Java应用程序运行非常缓慢,我知道由valgrind启动的应用程序可能会变慢比官方文档中的本机代码要耗费10-50倍的时间,但调试起来确实很耗时,在我的情况下,我只需要调试jna本机代码,就可以让valgrind忽略jvm代码(libjvm.so)并专注于我的本机图书馆?
我有以下配置。
- 我的jna本机代码是使用gcc选项
-g and -O0
编译的
使用参数调用 - valgrind
valgrind --leak-check=yes --error-limit=no --suppressions=/root/valgrind_errors.txt java -jar xxx.jar
- 我还尝试使用gcc选项
-g and -O0
重新编译JRE,但这没有加快执行速度。
您有一些建议来加快执行速度吗?
谢谢。
解决方法
您可以找到一些有关如何调整valgrind的指示 https://archive.fosdem.org/2015/schedule/event/valgrind_tuning/
A.o。,您可以使用--undef-value-errors = no