Node.js调试指南(全彩)

Node.js调试指南(全彩)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书系统讲解调试Node.js的8个方面,适合有开发经验的读者作为参考书。

内容简介

本书从CPU、内存、代码、工具、APM、日志、监控、应用这8个方面讲解如何调试 Node.js,大部分小节都会以一段经典的问题代码为例进行分析并给出解决方案。其中,第1章讲解CPU相关的知识,涉及各种CPU性能分析工具及火焰图的使用;第2章讲解内存相关的知识,例如Core Dump及如何分析 heapsnapshot文件;第3章讲解代码相关的知识,例如如何从代码层面避免写出难以调试的代码,并涉及部分性能调优知识;第4章讲解工具相关的知识,涉及常用的Node.js 调试工具和模块;第5章讲解APM(Application PerformanceManagement)相关的知识,例如两个不同的应用程序性能管理工具的使用;第6章讲解日志相关的知识,例如如何使用Node.js的async_hooks模块实现自动日志打点,并结合各种工具进行使用;第7章讲解监控相关的知识,例如如何使用Telegraf + InfluxDB + Grafana搭建一个完整的Node.js 监控系统;第8章讲解应用相关的知识,给出了两个完整的Node.js应用程序的性能解决方案。本书并不适合Node.js初学者,适合有一定Node.js开发经验的人阅读。笔者倾向于将本书定位成参考书,每一小节基本独立,如果遇到相关问题,则可以随时翻到相应的章节进行阅读。

章节目录

封面

版权页

前言

目录

第1章 CPU

1.1 理解perf与火焰图(FlameGraph)

1.1.1 perf

1.1.2 火焰图

1.1.3 红蓝差分火焰图

1.2 使用v8-profiler分析CPU的使用情况

1.3 Tick Processor及Web UI

1.3.1 Tick Processor

1.3.2 Web UI

第2章 内存

2.1 gcore与llnode

2.1.1 Core和Core Dump

2.1.2 gcore

2.1.3 llnode

2.1.4 测试Core Dump

2.1.5 分析Core文件

2.1.6--abort-on-uncaught-exception

2.1.7 小结

2.2 heapdump

2.2.1 使用heapdump

2.2.2 Chrome DevTools

2.2.3 对比快照

2.3 memwatch-next

2.3.1 使用memwatch-next

2.3.2 使用Heap Diff

2.3.3 结合heapdump使用

2.4 cpu-memory-monitor

2.4.1 使用cpu-memory-monitor

2.4.2 cpu-memory-monitor源码解读

第3章 代码

3.1 Promise

3.1.1 Promise/A+规范

3.1.2 从零开始实现Promise

3.1.3 Promise的实现原理

3.1.4 safelyResolveThen

3.1.5 doResolve和doReject

3.1.6 Promise.prototype.then和Promise.prototype.catch

3.1.7 值穿透

3.1.8 Promise.resolve和Promise.reject

3.1.9 Promise.all

3.1.10 Promise.race

3.1.11 代码解析

3.2 Async+Await

3.2.1 例1:async+await

3.2.2 例2:co+yield

3.2.3 例3:co+yield*

3.2.4 例4:co+bluebird

3.2.5 从yield转为yield*遇到的坑

3.2.6 async+bluebird

3.3 Error Stack

3.3.1 Stack Trace

3.3.2 Error.captureStackTrace

3.3.3 captureStackTrace在Mongolass中的应用

3.3.4 Error.prepareStackTrace

3.3.5 Error.prepareStackTrace的其他用法

3.3.6 Error.stackTraceLimit

3.3.7 Long Stack Trace

3.4 node@8

3.4.1 Ignition+Turbofan

3.4.2 版本的对应关系

3.4.3 try/catch

3.4.4 delete

3.4.5 arguments

3.4.6 async性能提升

3.4.7 不会优化的特性

3.5 Rust Addons

3.5.1 Rust

3.5.2 FFI

3.5.3 Neon

3.5.4 NAPI

3.6 Event Loop

3.6.1 什么是Event Loop

3.6.2 poll阶段

3.6.3 process.nextTick()

3.6.4 代码解析

3.7 处理uncaughtException

3.7.1 uncaughtException

3.7.2 使用llnode

3.7.3 ReDoS

第4章 工具

4.1 Source Map

4.1.1 uglify-es

4.1.2 TypeScript

4.1.3 source-map-support的高级用法

4.2 Chrome DevTools

4.2.1 使用Chrome DevTools

4.2.2 NIM

4.2.3 inspect-process

4.3 Visual Studio Code

4.3.1 基本调试

4.3.2 launch.json

4.3.3 技巧1——条件断点

4.3.4 技巧2——skipFiles

4.3.5 技巧3——自动重启

4.3.6 技巧4——对特定操作系统的设置

4.3.7 技巧5——多配置

4.3.8 总结

4.4 debug+repl2+power-assert

4.4.1 debug

4.4.2 repl2

4.4.3 power-assert

4.5 supervisor-hot-reload

4.5.1 Proxy

4.5.2 用Proxy实现Hot Reload

4.5.3 supervisor-hot-reload

4.5.4 内存泄漏问题

第5章 日志

5.1 koa-await-breakpoint

5.1.1 koa-await-breakpoint的实现原理

5.1.2 使用koa-await-breakpoint

5.1.3 自定义日志存储

5.2 使用async_hooks

5.3 ELK

5.3.1 安装ELK

5.3.2 使用ELK

5.4 OpenTracing+Jaeger

5.4.1 什么是OpenTracing

5.4.2 什么是Jaeger

5.4.3 启动Jaeger及Jaeger UI

5.4.4 使用OpenTracing及Jaeger

5.4.5 koa-await-breakpoint-jaeger

5.5 使用Sentry

第6章 APM

6.1 使用NewRelic

6.2 Elastic APM

6.2.1 什么是Elastic APM

6.2.2 启动ELK

6.2.3 启动APM Server

6.2.4 使用Elastic APM

6.2.5 错误日志

第7章 监控

7.1 Telegraf+InfluxDB+Grafana(上)

7.1.1 Telegraf(StatsD)+InfluxDB+Grafana简介

7.1.2 启动docker-statsd-influxdb-grafana

7.1.3 熟悉InfluxDB

7.1.4 配置Grafana

7.1.5 node-statsd

7.1.6 创建Grafana图表

7.1.7 模拟真实环境

7.2 Telegraf+InfluxDB+Grafana(下)

7.2.1 Grafana+ELK

7.2.2 监控报警

7.2.3 脚本一键生成图表

第8章 应用

8.1 使用node-clinic

8.2 alinode

8.2.1 什么是alinode

8.2.2 创建alinode应用

8.2.3 安装alinode

8.2.4 使用alinode诊断内存泄露

8.2.5 使用alinode诊断CPU性能瓶颈

Node.js调试指南(全彩)是2018年由电子工业出版社出版,作者赵坤。

得书感谢您对《Node.js调试指南(全彩)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
UI设计基础培训教程(全彩版) 电子书
按照“课堂案例—设计理论解析—课堂练习—课后习题”顺序编写,通过设计理论的讲解帮你掌握设计的原理和要素。
RPA落地指南 电子书
一本书读懂RPA,科技赋能企业数字化转型。
OpenDaylight应用指南 电子书
本书分为OpenDaylight基础概述、重点项目介绍和开发实践三部分。介绍了OpenDaylight社区背景、组织架构与项目概况;分析与阐释了OpenDaylight部分主要项目的设计思路、原理和开发技术;探讨了基于OpenDaylight进行业务控制平台开发的实践经验。本书可以作为网络技术人员和IT系统开发人员的中初级读物,帮助他们快速了解OpenDaylight社区及其大型通用SDN控制器的
PowerPoint图文演示技术(全彩微课版) 电子书
全面讲解PPT设计制作,普通人快速掌握,打造高品质作品。
可编程控制器技术及应用——PLC控制系统设计、开发与调试 电子书
本书以一个完整的PLC控制系统项目为主线,从实际项目开发流程入手,结合PLC理论知识来讲解可编程控制器的技术与应用。全书以欧姆龙公司CP1系列PLC为背景,介绍了PLC的特点和应用,并从PLC控制系统的设计入手,配以实际工程案例,围绕系统开发过程,详细阐述了系统主控器选择、系统电路设计、系统程序设计、系统通信结构、上位机软件开发,以及系统调试等。主要内容包括PLC的工作原理、硬件结构、编程资源与指