自定义分析器配置
最后修改时间:2023 年 9 月 7 日配置:设置| 构建、执行、部署 | Java 分析器
对于 CPU 和分配分析,IntelliJ IDEA 提供与以下分析器的集成:
Java Flight Recorder – 作为 JDK 的一部分提供的标准分析工具。
异步分析器– 一个非常准确的分析器,还可以收集本机调用和内存分配数据。
默认情况下,IntelliJ IDEA 并行运行两个分析器以提供最准确的结果。虽然可以单独使用受支持的探查器,但对于大多数情况,开箱即用的组合配置是更好的选择。这种方法利用了分析器的优点,并让您从任何设置中抽象出来,除非您有非常具体的要求。
Async Profiler和Java Flight Recorder配置允许您单独运行这些工具并根据特定要求对其进行微调。本主题介绍如何设置这些配置和环境。
创建单独的探查器配置
转到设置 | 构建、执行、部署 | Java 探查器。
单击“添加新配置”并选择探查器。
根据需要修改探查器选项。
有关选项的含义和用途,请分别参阅Async Profiler和Java Flight Recorder章节。
异步分析器
笔记
在 Windows 和 macOS 上,分析器可以开箱即用。如果您使用的是 Linux,则必须在开始分析之前调整内核选项。
调整 Linux 上的内核选项
调整perf_event_paranoid。此选项控制非 root 用户对性能事件数据的使用。
将值设置为小于 2,以便分析器在没有 root 权限的情况下收集性能信息:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
调整kptr_restrict。此选项设置对暴露内核地址的限制。
要正确解析内核符号,请将 kptr_restrict的值设置为 0 来禁用kptr_restrict提供的保护:
sudo sh -c 'echo 0 >/proc/sys/kernel/kptr_restrict'
默认情况下,这些更改仅影响您当前的操作系统会话。要在系统重新启动后保留设置,请运行:
sudo sh -c 'echo kernel.perf_event_paranoid=1 >> /etc/sysctl.d/99-perf.conf'
sudo sh -c 'echo kernel.kptr_restrict=0 >> /etc/sysctl.d/99-perf.conf'
sudo sh -c 'sysctl --system'
配置选项
笔记
您可以在GitHub 上的官方文档中找到 Async Profiler 配置的详细说明。
选项 | 描述 |
---|---|
代理选项 | 将传递给代理的选项。例如,它们可用于启用挂钟分析或调整采样间隔。 |
代理人 | 将用于分析的代理。 |
Java飞行记录器
Java Flight Recorder 可在 Windows、Linux 和 macOS 上使用。以下 JDK 版本原生支持它:
Oracle JDK 8-10:前提是启用了
UnlockCommercialFeatures
VM 选项Oracle JDK 11 及更高版本
OpenJDK 11 及更高版本
为 Oracle JDK 8-11 启用 JFR
转到“运行”| 编辑配置,然后从左侧列表中选择要使用 JFR 分析的运行配置。
在VM 选项字段中,添加以下行:
-XX:+UnlockCommercialFeatures
。警告
该标志可解锁 Oracle Java SE Advanced 或 Oracle Java SE Suite 产品的商业功能。在启用它们之前,请仔细阅读JAVA SE 平台产品的 Oracle 二进制代码许可协议。
单击“应用”保存更改并关闭对话框。
JFR配置
有两种预安装的配置:Default和Profile。默认配置的开销较低(约 1%)。这就是为什么它非常适合连续分析。Profile配置的开销约为 2%,可用于更详细的应用程序分析。
这些配置涵盖了大多数用例。您可以在设置 |中选择最合适的配置。构建、执行、部署 | Java 分析器 | Java 飞行记录器。
如果预定义的配置不能满足您的需求,您可以通过Java Mission Control创建并上传您自己的设置。
运行 Java Mission Control,您可以在JAVA_HOME
/bin 中找到它或从https://jdk.java.net/jmc/下载。/jmc 从 Java Mission Control 主菜单中,选择“窗口”| “Java 任务控制”。飞行记录模板管理器。
单击右侧面板上的“导入文件” ,然后选择.jfc格式的预安装配置之一:
对于 Java 10 及更早版本:JAVA_HOME
/jre /lib /jfr/ 对于 Java 11 及更高版本:JAVA_HOME
/Contents /Home /lib /jfr/
选择编辑 | 高级,更改必要的设置,然后单击确定。
在“飞行记录模板管理器”对话框中,单击“导出文件”。
为新设置文件指定另一个名称,并根据需要更改其位置。单击“保存”。
有关配置自定义设置的更多信息,请参阅使用模板控制录制数据。
提示
Windows 上的默认JAVA_HOME路径为:C:
\Program Files ,在 macOS 上为:/Library /Java /JavaVirtualMachines。\Java
感谢您的反馈意见!