性能与内存分析

共 27 题
#

1. Performance 面板中 long task 过滤与 Bottom-Up/Call Tree 视图的工程价值

A Call Tree 与 Bottom-Up 功能完全相同
B long task 过滤只保留小于 50ms 的任务
C Bottom-Up 按函数聚合耗时定位热点,Call Tree 展示调用路径,long task 过滤聚焦阻塞任务 ✓ 正确答案
D Bottom-Up 视图无法汇总不同调用路径中的同一函数耗时
#

2. Memory 面板(Heap Snapshot 对比、Allocation timeline、Detached DOM 检测)

A Heap Snapshot 只能查看快照,无法对比或看引用链
B Detached DOM 指的是已经卸载但仍被业务引用的 DOM,不会造成任何泄漏
C 通过 Heap Snapshot 对比、Allocation Timeline 与 Detached DOM 检测可定位内存泄漏 ✓ 正确答案
D Allocation Timeline 无法记录对象的分配调用栈
#

3. Stack Trace 与 Sampling Profiler 在 Node 与浏览器的边界

A 两者本质相同,都是性能分析工具
B Stack Trace 只能用于性能分析,不能用于异常诊断
C Sampling Profiler 只能用于 Node,浏览器无法使用
D Stack Trace 反映单次执行路径,Sampling Profiler 通过采样统计函数耗时占比,前者适合诊断、后者适合性能分析 ✓ 正确答案
#

4. Memory 面板的 Memory.AllocationSampling 与时间维度堆增长分析

A 内存峰值高就等于泄漏,无需看趋势
B 时间维度分析只看峰值,不关心 GC 后是否回落
C Allocation Sampling 会完全替代 Heap Snapshot,无法配合
D Allocation Sampling 以低开销采样记录分配调用栈,时间维度分析看堆是否持续增长而非临时峰值 ✓ 正确答案
#

5. Lighthouse 审计(Performance、Accessibility、Best Practices、SEO、PWA)

A Performance 基于 FCP/LCP/CLS/TBT 等指标,Accessibility 检查语义与对比度,Best Practices 检查安全与现代化 ✓ 正确答案
B 它只审计性能,不涉及无障碍与 SEO
C PWA 维度只检查网络速度
D Lighthouse 结果无法自动化,只能人工查看
#

6. GPU 面板(WebGL/Canvas 命令)与 Rendering 帧分析

A Rendering 面板用于查看 WebGL/GPU 命令
B GPU 面板只能分析主线程 JS,与 GPU 无关
C GPU 面板可查看 WebGL/Canvas 命令与 draw call,Rendering 面板可可视化重绘与合成,用于诊断渲染瓶颈 ✓ 正确答案
D Rendering 面板无法显示重绘区域
#

7. Memory Pressure 在 JavaScript Heap 增长的工程价值(performance.memory)

A performance.memory 返回的是网络请求大小
B 内存压力与 GC 无关,不影响页面
C performance.memory 可估算 JS 堆使用量,Memory Pressure 模拟可观测页面在低内存下的表现 ✓ 正确答案
D performance.memory 是标准 API,所有浏览器都支持
#

8. --js-flags=--expose-gc + DevTools 在触发 GC 的工程取舍

A 它会让页面自动 GC,无需手动调用
B 手动 GC 与真实 GC 节奏完全一致,无任何差异
C 该参数只对 Node 有效,对 Chrome 无效
D 它暴露全局 gc() 用于受控验证内存回收,适合调试与测试,不应作为生产依赖 ✓ 正确答案
#

9. Chrome DevTools Coverage 面板与 unused JS/CSS 的工程价值

A 它只能测量网络带宽,无法区分已用与未用代码
B Coverage 只能用于 CSS,不能用于 JS
C 未使用代码不影响性能,无需优化
D 它按行显示使用/未使用的比例,量化未使用 JS/CSS,指导代码分割与去死代码 ✓ 正确答案
#

10. Lighthouse 的 Treemap(JS 执行/CPU 占用)

A Treemap 以树状图展示各模块的字节数与执行耗时,用于指导代码体积优化 ✓ 正确答案
B 它只显示网络请求,不显示模块体积
C 体积大但执行快的模块无需优化
D Treemap 只能看到单个文件的体积,无法按模块聚合
#

11. 渲染帧分析、绘制、Composite Layers

A 改 transform 会强制触发 Layout 与 Paint
B 所有 CSS 属性变化都只触发合成
C 绘制与合成是同一件事,无法区分
D 合成在 GPU 上合成图层,transform/opacity 通常只触发合成层,避免重绘,是动画优化基础 ✓ 正确答案
#

12. Chrome DevTools 的 Performance 面板在主线程瓶颈定位的现代应用

A 主线程火焰图主要看网络请求耗时
B 火焰图中红色块表示长耗时任务,可定位 JS 或样式计算阻塞,配合 Call Tree/Bottom-Up 定位具体瓶颈 ✓ 正确答案
C 主线程瓶颈与渲染无关,只需看内存
D 长任务不会阻塞用户输入
#

13. Memory 面板的 Detached DOM(分离 DOM)

A 只有原生 DOM 会泄漏,框架组件不会
B 分离 DOM 会被 GC 正常回收,不会泄漏
C Detached 节点无法在 Heap Snapshot 中查看
D 已从文档树移除但被 JS 引用、无法回收的 DOM 节点,是常见内存泄漏源 ✓ 正确答案
#

14. Performance 面板的 Long Task(>50ms)

A 50ms 是随机选择,无理论依据
B 长任务只影响网络,不影响交互
C 它来自 RAIL 模型,超过 50ms 的任务会阻塞输入与渲染,需拆分为可让出主线程的小任务 ✓ 正确答案
D 长任务无法在 Performance 面板中标记
#

15. Performance 面板的 Layout Shift(CLS)

A CLS 指的是网络延迟,与布局无关
B Performance 面板可高亮定位每次 Layout Shift 的元素与时机,诱因常是无尺寸图片或动态插入内容 ✓ 正确答案
C CLS 无法通过预留宽高来改善
D 布局偏移只影响桌面端,不影响移动端
#

16. Performance 面板的 Recalculate Style 与 Layout 的回流定位

A 读取 offsetWidth 等布局属性后立即改样式会触发强制同步布局,Performance 面板可定位此类回流 ✓ 正确答案
B 回流只与网络有关,与样式无关
C Recalculate Style 不涉及任何布局开销
D 强制同步布局无法被 DevTools 检测警告
#

17. Performance 面板的 experience.timing(INP 详情)的现代应用

A INP 衡量的是网络下载速度
B INP 与主线程阻塞无关
C experience.timing 可将交互延迟分解为输入延迟、处理时间、呈现延迟,用于定位交互性能瓶颈 ✓ 正确答案
D INP 只看交互次数,不看延迟
#

18. Chrome DevTools 的 Performance 的 Source Map 还原调试的工程价值

A Source Map 只用于压缩代码,与性能分析无关
B 生产环境必须禁用 Source Map,否则无法运行
C Source Map 无法还原函数名,只能还原行号
D 通过 Source Map 可在性能火焰图中看到原始源码函数名,便于生产环境定位性能问题 ✓ 正确答案
#

19. Memory 面板的 Garbage Collection(GC)

A GC 是用户可控的,可以完全关闭
B GC 只回收 DOM,不回收 JS 对象
C Performance 面板可观察 GC 事件,GC 频繁或停顿过长可能源于分配密集或对象长期存活 ✓ 正确答案
D 内存分配与 GC 无关
#

20. Heap Snapshot 的 Retained Size 与 Dominators 视图,如何沿全局引用链定位真正持有内存的根对象,与 Shallow Size 的区别?

A Shallow Size 包含对象所有引用对象的内存
B Retained Size 与 Shallow Size 完全相等
C Retained Size 是对象被回收可释放的内存,Dominators 视图沿 Retainers 引用链可回溯到持有内存的根对象 ✓ 正确答案
D Dominators 视图无法定位内存持有者
#

21. Performance 面板的 RAIL 模型与录制重放的工程价值

A RAIL 模型没有可量化的阈值
B RAIL 只关心加载,不涉及响应与动画
C Performance 录制无法重放,只能一次性分析
D RAIL 要求响应 100ms 内、动画每帧 16ms、加载 5s 内 ✓ 正确答案
#

22. Performance 面板的 eventTiming(用户交互延迟)的工程应用

A PerformanceEventTiming 记录交互事件的处理时机,可分解输入延迟与处理时间,定位交互响应缺口 ✓ 正确答案
B eventTiming 记录的是网络请求耗时
C eventTiming 与用户交互无关
D 交互延迟无法通过 Performance 面板查看
#

23. Memory 面板的 Allocation Timeline 的实时内存分配的现代应用

A 它只能显示内存总量,无法记录分配调用栈
B 分配热点与内存泄漏无关
C 它只能用于静态快照,无法实时观察
D 它实时记录对象分配的时间与调用栈,可定位运行期分配热点与泄漏 ✓ 正确答案
#

24. Chrome DevTools 的 Memory Pressure 在低内存模拟的工程实践

A 它只能模拟网络慢,不能模拟内存
B 内存压力模拟无法在 DevTools 中完成
C 低内存只影响后台标签页,不影响页面自身
D 通过模拟低内存信号可验证页面在低内存设备上的降级与稳定性,配合 performance.memory 观察堆 ✓ 正确答案
#

25. Memory 面板的 webglMemory 与 gpuMemory 在 GPU 内存的诊断

A 它们反映的是 JS 堆内存
B 它们反映 WebGL 与 GPU 内存占用,用于诊断图形应用的 GPU 资源是否泄漏 ✓ 正确答案
C GPU 内存与图形应用无关
D 纹理无法占用 GPU 内存
#

26. Chrome DevTools 的 FPS Meter 在动画性能监控的工程应用

A 它只能显示网络帧率,与动画无关
B 它显示当前帧率,适合实时监控动画表现,掉帧时需用 Performance 深入定位 ✓ 正确答案
C FPS Meter 无法反映掉帧
D 帧率低于 60fps 是正常现象,无需关注
#

27. Chrome DevTools 的 CPU 节流(4x/6x/20x)与网络节流组合在低端设备性能模拟与 INP 排查的工程实践?

A CPU 节流只能模拟网络慢,不能降低 CPU 性能
B 节流只影响视觉,不影响性能指标
C 组合 CPU 与网络节流可模拟低端设备+慢网络场景,放大主线程问题以排查 INP ✓ 正确答案
D INP 排查无需节流,直接看即可