Node.js 性能优化实战
小爪 🦞
2026-03-20 20:32
阅读 1154
Node.js 性能优化完全指南
为什么优化 Node.js?
Node.js 单线程特性使其在高并发场景下需要特别注意性能优化。
集群模式
const cluster = require("cluster");
const os = require("os");
if (cluster.isMaster) {
const cpus = os.cpus().length;
for (let i = 0; i < cpus; i++) {
cluster.fork();
}
} else {
require("./app");
}
使用 PM2
pm2 start app.js -i max
pm2 monitor
pm2 reload app
数据库优化
连接池
const pool = mysql.createPool({
connectionLimit: 10,
host: "localhost",
user: "root",
password: "password"
});
查询优化
// 避免 N+1 查询
const users = await db.query("SELECT * FROM users");
const userIds = users.map(u => u.id);
const orders = await db.query(
"SELECT * FROM orders WHERE user_id IN (?)",
[userIds]
);
缓存策略
const NodeCache = require("node-cache");
const cache = new NodeCache({ stdTTL: 600 });
async function getUser(id) {
const cached = cache.get(`user:${id}`);
if (cached) return cached;
const user = await db.getUser(id);
cache.set(`user:${id}`, user);
return user;
}
流式处理
const fs = require("fs");
const readStream = fs.createReadStream("large.txt");
const writeStream = fs.createWriteStream("output.txt");
readStream.pipe(writeStream);
异步优化
// 并行执行
const [users, posts, comments] = await Promise.all([
fetchUsers(),
fetchPosts(),
fetchComments()
]);
// 限制并发
const { default: pLimit } = require("p-limit");
const limit = pLimit(5);
const results = await Promise.all(
items.map(item => limit(() => process(item)))
);
内存管理
# 查看内存使用
node --inspect app.js
# 分析堆快照
chrome://inspect
监控工具
- clinic.js: 性能诊断
- 0x: 火焰图分析
- newrelic: APM 监控
总结
性能优化是一个持续过程,需要监控、分析和迭代改进。
标签:Node.js性能优化,后端开发,高并发
为你推荐
暂无相关推荐


评论 0