全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

NodeJS性能优化专题测试

19 题 40 分钟 难度:

考察知识点

知识模块题目数核心考点
内存泄漏底层定位4题heapdump快照分析、Retainers引用链、泄漏模式识别
异步IO性能瓶颈分析4题libuv线程池、网络IO与文件IO区别、并发控制
代码热点优化3题火焰图分析、V8 TurboFan优化、去优化避免
V8垃圾回收调优原理4题分代回收算法、新生代/老生代空间、GC调优参数
事件循环阻塞排查4题阻塞原因、延迟监控、worker_threads拆分
1
单选题

Node.js应用内存持续增长,需要定位泄漏源。以下哪种方法能最准确找到内存泄漏的对象类型?

A

监控process.memoryUsage()

B

使用Chrome DevTools对比堆快照

C

分析GC日志

D

使用console.log输出对象数量

2
单选题

Chrome DevTools Memory面板中,查看对象的"Retainers"是指什么?

A

对象被引用的次数

B

对象引用的其他对象

C

阻止对象被GC回收的引用链

D

对象占用的内存大小

3
多选题

Node.js应用中常见的内存泄漏模式包括哪些?

A

全局缓存对象无限增长

B

事件监听器重复添加未移除

C

定时器未清除

D

闭包持有大对象引用

E

正常的函数调用栈

4
判断题

检测内存泄漏时,应在应用启动时、运行一段时间后、执行特定操作后分别生成堆快照进行对比分析。

A

B

5
单选题

Node.js异步IO的核心机制是什么?

A

多线程阻塞IO

B

单线程事件循环配合libuv线程池

C

协程模型

D

进程池并发处理

6
单选题

Node.js应用中,大量文件IO操作可能导致性能瓶颈,其原因是什么?

A

主线程被阻塞

B

libuv线程池饱和

C

系统内存不足

D

网络带宽限制

7
多选题

Node.js异步IO性能瓶颈的优化方法包括哪些?

A

增加libuv线程池大小

B

使用流(stream)处理大文件

C

控制IO操作并发数

D

将CPU密集任务移到子进程

E

使用同步IO替代异步IO

8
判断题

Node.js中网络IO(如http请求)使用系统原生异步机制(epoll/kqueue),不会占用libuv线程池。

A

B

9
单选题

Node.js性能分析中,火焰图(Flame Graph)主要用于识别什么?

A

内存泄漏位置

B

CPU密集型热点函数

C

网络请求瓶颈

D

磁盘IO瓶颈

10
单选题

V8引擎的TurboFan编译器优化JavaScript代码时,以下哪种情况会导致"去优化"(Deoptimization)?

A

函数参数类型发生变化

B

使用let声明变量

C

调用内置函数

D

使用async/await

11
多选题

以下哪些JavaScript编码实践有助于V8引擎优化执行?

A

保持函数参数类型稳定

B

预定义对象属性而非动态添加

C

避免在循环中创建新函数

D

使用const声明不变变量

E

大量使用eval动态执行代码

12
单选题

V8垃圾回收使用的算法是?

A

单纯的引用计数

B

分代垃圾回收(Generational GC)

C

单纯的标记清除

D

复制式垃圾回收

13
单选题

V8将堆内存划分为新生代和老生代,新生代默认空间大小约为?

A

1MB

B

32MB

C

512MB

D

1GB

14
多选题

Node.js应用可以通过哪些V8参数调整垃圾回收行为?

A

--max-old-space-size调整老生代大小

B

--max-new-space-size调整新生代大小

C

--expose-gc手动触发GC

D

--gc-interval设置GC间隔

E

--trace-gc查看GC日志

15
判断题

V8垃圾回收触发条件是堆内存使用超过阈值,阈值由heap大小和动态调整算法决定,不是固定值。

A

B

16
单选题

Node.js事件循环阻塞的主要原因是什么?

A

异步网络IO操作

B

同步CPU密集型任务执行

C

文件异步读取

D

定时器回调

17
单选题

检测Node.js事件循环延迟(Lag)最准确的方法是?

A

使用setInterval监控时间差

B

使用process.nextTick监控

C

使用blocked-at或clinic.js工具

D

监控CPU使用率

18
多选题

避免Node.js事件循环阻塞的方法包括哪些?

A

将CPU密集任务移到worker_threads

B

使用setImmediate拆分长任务

C

避免同步文件IO

D

使用child_process处理计算任务

E

增加事件循环优先级

19
判断题

Node.js事件循环按固定顺序执行各个阶段:timers → pending callbacks → idle/prepare → poll → check → close callbacks。

A

B

← 上一个试卷 NodeJS异步编程基础专题测试
下一个试卷 → NodeJS核心模块进阶专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库