GC 调优与性能分析工具

共 51 题
#

1. G1 GC 的 Region 模型与 Humongous 对象

A 分散存放
B 连续分配多个相邻 Region ✓ 正确答案
C 复制到堆外
D 不占 Region
#

2. G1 的 Mixed GC 与并发标记

A 新生代 + 部分高价值老年代 Region ✓ 正确答案
B 只回收新生代
C 整个堆
D 只回收元空间
#

3. GC 与 R2DBC 的协作

A 无影响
B 只影响 Full GC
C 减少 GC
D 产生大量短生命周期对象,增加分配压力与 GC 频率 ✓ 正确答案
#

4. GC 日志分析(-Xlog:gc*)与 GC Easy/GCeasy 工具在生产环境的诊断

A GCeasy ✓ 正确答案
B jps
C javap
D jcmd
#

5. GC 的 STW 时间治理

A Parallel GC
B ZGC ✓ 正确答案
C Serial GC
D CMS
#

6. GC 算法的设计取舍(吞吐/延迟/内存)

A 吞吐量与内存开销(并发收集开销) ✓ 正确答案
B 正确性
C 线程数
D 网络
#

7. GC 调优的吞吐量(Throughput)/延迟(Latency)

A 应用执行时间 / 总时间 ✓ 正确答案
B GC 时间
C 堆大小
D 线程数
#

8. JDK 25 中 ThreadMXBean 的 CPU 时间与线程状态采样的工程价值

A getThreadCpuTime
B findDeadlockedThreads ✓ 正确答案
C getThreadCount
D getPeakThreadCount
#

9. JVM 的 GC 日志(-Xlog:gc*)的诊断价值

A 堆大小
B 元空间大小
C 线程数
D GC 触发原因 ✓ 正确答案
#

10. 分析虚拟线程时,应如何结合 JFR 的启动、钉住、提交失败和载体线程事件定位问题

A jdk.MethodCompilation
B jdk.GCHeapSummary
C jdk.VirtualThreadPinned ✓ 正确答案
D jdk.FileWrite
#

11. GC 与 direct/mapped ByteBuffer 的协作

A 每次 GC 自动回收全部堆外
B 堆满时
C 永不回收
D DirectByteBuffer 对象被 GC 时,由 Cleaner 触发释放 ✓ 正确答案
#

12. GC 调优的 jstat/jcmd GC.* 命令在生产环境的实时监控与采样策略

A 高频 jcmd 命令
B JFR/JMX 低开销采集 ✓ 正确答案
C 频繁手工 jstack
D 不采集
#

13. JFR 的 jdk.OldObjectSample 与堆外采样,如何限定队列长度、并发上限和请求截止时间

A 识别长生命周期对象(内存泄漏线索) ✓ 正确答案
B 统计 CPU 占用
C 记录网络请求
D 统计 GC 次数
#

14. NMT baseline 与 detail.diff 如何定位本地内存增长,无法归类的 native malloc 应怎样继续追踪

A 堆对象
B JNI/第三方 native 库的直接 malloc ✓ 正确答案
C 元空间
D 线程栈
#

15. Safepoint 日志中的 time to reach safepoint 与 operation time 分别指什么,前者异常说明什么

A GC 太快
B 线程数太少
C 堆太小
D 有线程(长循环/JNI临界区)无法及时到达安全点 ✓ 正确答案
#

16. Serial/Parallel/CMS/G1/ZGC/Shenandoah 的代际演进

A G1
B Shenandoah
C ZGC
D CMS ✓ 正确答案
#

17. Spring Boot 4.0 中 Spring Insights 与 IntelliJ Profiler 在本地开发环境的集成与远程模式

A 纯 Java 反射
B 网络分析
C 字节码反编译
D async-profiler / JFR ✓ 正确答案
#

18. ZGC 的并发线程与子阶段

A 应用线程暂停
B 串行执行
C 应用线程退出
D 并发运行,应用线程不暂停 ✓ 正确答案
#

19. ZGC 的染色指针(Colored Pointer)的工程价值

A 指针的高位 ✓ 正确答案
B 对象头
C 元空间
D 堆外
#

20. eBPF 系统调用延迟与 Java trace id 如何按时间和线程关联,时钟源不一致时怎样校准

A 内存与 CPU
B 线程 ID 与时间戳 ✓ 正确答案
C 端口与协议
D 文件与行号
#

21. eBPF(Linux 4.x+)的火焰图与系统级追踪,如何定位内核态与用户态性能瓶颈?

A on-cpu 火焰图
B 内存火焰图
C off-cpu 火焰图 ✓ 正确答案
D 网络火焰图
#

22. jcmd VM.native_memory、GC.class_histogram 和 Thread.print 各有什么停顿与权限影响

A VM.native_memory
B GC.class_histogram ✓ 正确答案
C VM.version
D VM.system_properties
#

23. 使用 VisualVM 2.x 与 JMX 在 Spring Boot 4.0 中远程分析堆转储与线程转储的安全配置

A 不设密码
B 启用认证与 SSL,并限制访问网段 ✓ 正确答案
C 只绑定本地
D 无需安全
#

24. 分配火焰图显示的是分配速率而非存活内存,如何与 OldObjectSample 或堆转储交叉验证

A 分配热点可能只是高频短命分配,需用存活数据验证 ✓ 正确答案
B 分配热点一定是泄漏
C 与内存无关
D 火焰图不可靠
#

25. 锁火焰图如何展示等待时间与持锁路径,采样不到短锁是否就能证明没有竞争

A
B 一定证明
C 不能,短锁可能被采样漏采,需结合 JFR 锁事件等多手段验证 ✓ 正确答案
D 与采样无关
#

26. GC 日志与 JFR 的关联分析,如何交叉验证 GC 停顿与性能事件?

A 时间戳对齐(同一时间基准) ✓ 正确答案
B 数据量相同
C 线程数相同
D 堆大小相同
#

27. JDK 25 G1 GC 的 -Xmx/-XX:MaxGCPauseMillis/-XX:G1HeapRegionSize 关键调优参数

A 10ms
B 无默认
C 1s
D 200ms ✓ 正确答案
#

28. JDK 25 中 Shenandoah GC 与 ZGC 的低暂停时间对比与适用场景

A Brooks Pointer(前向指针) ✓ 正确答案
B 染色指针
C 对象头标记
D 无并发
#

29. JDK Flight Recorder 2.x 在 JDK 25 中默认事件的存储开销与 Spring Boot 长时间运行的策略

A 无限增长
B 覆盖最旧事件 ✓ 正确答案
C 停止录制
D 崩溃
#

30. JFR 的 jdk.GCHeapSummary 与延迟分析

A 线程栈
B 文件句柄
C 网络包
D GC 时的堆使用情况 ✓ 正确答案
#

31. JMC 中 CPU Load、执行采样和方法耗时分别反映什么,为什么不能把样本比例直接当耗时

A 样本比例是采样近似占比,且不含等待/IO时间 ✓ 正确答案
B 样本不准
C 耗时无关
D 样本比例即耗时
#

32. Linux perf/bpftrace 在 JDK Native 方法与系统调用级别的性能分析

A bpftrace(eBPF) ✓ 正确答案
B jps
C javap
D jjs
#

33. Shenandoah 的 Brooks Pointer

A 记录 GC 次数
B 存储常量
C 支持并发移动对象(前向指针) ✓ 正确答案
D 计数
#

34. jcmd/jstat 的诊断命令

A VM.flags ✓ 正确答案
B GC.run
C Thread.print
D JFR.start
#

35. 火焰图(Flame Graph)的解读

A 底部最宽
B 中间区域
C 顶部最宽(叶子函数) ✓ 正确答案
D 颜色
#

36. 生产操作前应设置哪些容量与回滚条件

A 定义可量化的触发指标(吞吐/错误率/延迟超阈值)并配置快速回滚 ✓ 正确答案
B 不定义,凭感觉
C 只要不崩溃就成功
D 无需回滚
#

37. 生产环境持续录制 JFR 时,profile 与 default 配置在事件阈值、栈深和开销上如何取舍

A default(低开销、关键事件) ✓ 正确答案
B profile(高开销)
C 无配置
D 全量事件
#

38. JDK Mission Control(JMC)在 JDK 25 的 JFR 事件分析与可视化诊断

A 编写代码
B 编译
C 部署应用
D 分析 JFR 录制数据并可视化诊断 ✓ 正确答案
#

39. JDK 25 的 Foreign Function & Memory API(JEP 454,JDK 22 定稿)在堆外内存管理与 GC 协作的工程价值

A Heap
B Arena ✓ 正确答案
C Stack
D Registry
#

40. JDK 25 ZGC(分代模式,JEP 439)的 -XX:+UseZGC 启用与停顿时间(<1ms)的工程价值

A -XX:+UseZGC ✓ 正确答案
B -XX:+UseParallelGC
C -XX:+UseSerialGC
D -XX:+UseG1GC
#

41. 使用 JFR 与 OpenTelemetry 在 K8s 中实现 Spring Boot 应用的 Profile 数据采集与导出

A HTTP 明文
B JDBC
C OTLP ✓ 正确答案
D JMS
#

42. JDK 25 中 -Xlog:gc* 与 JFR 的 jdk.GCPhase 事件在 GC 停顿分析中的维度差异

A JFR 的 jdk.GCPhase 事件 ✓ 正确答案
B -Xlog:gc* 文本
C jps
D javap
#

43. JFR Streaming API(JDK 25+)的工程价值

A 只能离线分析
B 实时消费 JFR 事件流,可编程处理 ✓ 正确答案
C 必须转储文件
D 只能看 CPU
#

44. JFR 在 JDK 25 虚拟线程下对 park/unpark 事件的采集与同步原语热点分析

A jdk.ThreadPark ✓ 正确答案
B jdk.GCPhase
C jdk.FileWrite
D jdk.SocketRead
#

45. JFR 的 jdk.CPUTimeSample(JEP 509,JDK 25),异常信息脱敏与保留诊断价值之间如何平衡

A 完全脱敏
B 不脱敏
C 最小化脱敏,保留关键诊断信息(方法/栈/耗时) ✓ 正确答案
D 只保留异常
#

46. JProfiler / YourKit 在内存泄漏检测与 CPU 热点定位的工程价值

A 可视化交互式、易用、自动向导 ✓ 正确答案
B 更低开销
C 自带 JDK
D 仅命令行
#

47. JProfiler/YourKit 的分配采样与 CPU 采样模式差异及对生产线程的干扰

A 插桩(instrumentation)
B 全量记录
C 采样(sampling) ✓ 正确答案
D 无模式
#

48. Spring Boot 4.0 Actuator 指标与 JFR 事件关联的 AOT 兼容性在 GraalVM Native Image 下如何配置

A 注释
B application.yml
C 无需配置
D reflect-config.json / RuntimeHintsRegistrar ✓ 正确答案
#

49. jcmd/jstack/jmap/jstat 在 JDK 25 中的诊断命令清单与最佳实践

A javap
B jmap
C jstat
D jstack ✓ 正确答案
#

50. jstack/jconsole/jvisualvm 的诊断价值

A jconsole ✓ 正确答案
B jstack
C javap
D jdeps
#

51. 压测工具发生 coordinated omission 时为何会低估尾延迟,开放模型或补偿记录如何修正

A 无法反映延迟
B 固定并发数等待响应
C 不注入请求
D 按固定速率持续注入请求,不受系统响应速度影响 ✓ 正确答案