欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 教程文档 > Js&Ajax > Node.js调试指南_赵坤[PDF][73.53MB]

Node.js调试指南_赵坤[PDF][73.53MB]

2019-07-10 776 收藏 0 赞一个 0 真差劲 0 去评论 去下载

内容简介

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

目录

第1 章 CPU 1
1.1 理解perf 与火焰图(FlameGraph) 2
1.1.1 perf 2
1.1.2 火焰图 6
1.1.3 红蓝差分火焰图 8
1.2 使用 v8-profiler 分析 CPU 的使用情况 11
1.3 Tick Processor 及Web UI 16
1.3.1 Tick Processor 16
1.3.2 Web UI 21
第2 章 内存 23
2.1 gcore 与llnode 24
2.1.1 Core 和 Core Dump 24
2.1.2 gcore 25
2.1.3 llnode 25
2.1.4 测试 Core Dump 26
2.1.5 分析Core 文件 27
2.1.6 --abort-on-uncaught-exception 29
2.1.7 小结 30
2.2 heapdump 30
2.2.1 使用heapdump 30
2.2.2 Chrome DevTools 32
2.2.3 对比快照 34
2.3 memwatch-next 35
2.3.1 使用memwatch-next 35
2.3.2 使用Heap Diff 38
2.3.3 结合 heapdump 使用 40
2.4 cpu-memory-monitor 41
2.4.1 使用cpu-memory-monitor 41
2.4.2 cpu-memory-monitor 源码解读 43
第3 章 代码 46
3.1 Promise 47
3.1.1 Promise/A 规范 48
3.1.2 从零开始实现 Promise 48
3.1.3 Promise 的实现原理 50
3.1.4 safelyResolveThen 52
3.1.5 doResolve 和 doReject 54
3.1.6 Promise.prototype.then 和 Promise.prototype.catch 55
3.1.7 值穿透 58
3.1.8 Promise.resolve 和 Promise.reject 60
3.1.9 Promise.all 61
3.1.10 Promise.race 62
3.1.11 代码解析 63
3.2 Async Await 69
3.2.1 例1 :async await 70
3.2.2 例2 :co yield 71
3.2.3 例3 :co yield* 72
3.2.4 例4 :co bluebird 73
3.2.5 从yield 转为yield* 遇到的坑 75
3.2.6 async bluebird 76
3.3 Error Stack 77
3.3.1 Stack Trace 78
3.3.2 Error.captureStackTrace 80
3.3.3 captureStackTrace 在 Mongolass 中的应用 83
3.3.4 Error.prepareStackTrace 84
3.3.5 Error.prepareStackTrace 的其他用法 86
3.3.6 Error.stackTraceLimit 88
3.3.7 Long Stack Trace 88
3.4 node@8 89
3.4.1 Ignition Turbofan 90
3.4.2 版本的对应关系 91
3.4.3 try/catch 91
3.4.4 delete 93
3.4.5 arguments 95
3.4.6 async 性能提升 97
3.4.7 不会优化的特性 98
3.5 Rust Addons 100
3.5.1 Rust 100
3.5.2 FFI 100
3.5.3 Neon 103
3.5.4 NAPI 108
3.6 Event Loop 110
3.6.1 什么是 Event Loop 110
3.6.2 poll 阶段 112
3.6.3 process.nextTick() 112
3.6.4 代码解析 113
3.7 处理 uncaughtException 120
3.7.1 uncaughtException 120
3.7.2 使用 llnode 121
3.7.3 ReDoS 122
第4 章 工具 125
4.1 Source Map 126
4.1.1 uglify-es 126
4.1.2 TypeScript 128
4.1.3 source-map-support 的高级用法 129
4.2 Chrome DevTools 129
4.2.1 使用 Chrome DevTools 130
4.2.2 NIM 132
4.2.3 inspect-process 133
4.2.4 process._debugProcess 133
4.3 Visual Studio Code 134
4.3.1 基本调试 134
4.3.2 launch.json 136
4.3.3 技巧 1——条件断点 138
4.3.4 技巧 2——skipFiles 139
4.3.5 技巧 3——自动重启 140
4.3.6 技巧 4——对特定操作系统的设置 142
4.3.7 技巧 5——多配置 142
4.3.8 总结 144
4.4 debug repl2 power-assert 144
4.4.1 debug 144
4.4.2 repl2 146
4.4.3 power-assert 148
4.5 supervisor-hot-reload 151
4.5.1 Proxy 151
4.5.2 用Proxy 实现 Hot Reload 153
4.5.3 supervisor-hot-reload 155
4.5.4 内存泄漏问题 160
第5 章 日志 161
5.1 koa-await-breakpoint 162
5.1.1 koa-await-breakpoint 的实现原理 162
5.1.2 使用 koa-await-breakpoint 165
5.1.3 自定义日志存储 167
5.2 使用async_hooks 168
5.3 ELK 177
5.3.1 安装 ELK 177
5.3.2 使用 ELK 178
5.4 OpenTracing Jaeger 182
5.4.1 什么是 OpenTracing 182
5.4.2 什么是 Jaeger 184
5.4.3 启动 Jaeger 及Jaeger UI 184
5.4.4 使用 OpenTracing 及Jaeger 185
5.4.5 koa-await-breakpoint-jaeger 187
5.5 使用Sentry 190
第6 章 APM 197
6.1 使用NewRelic 198
6.2 Elastic APM 201
6.2.1 什么是 Elastic APM 201
6.2.2 启动 ELK 203
6.2.3 启动 APM Server 203
6.2.4 使用 Elastic APM 203
6.2.5 错误日志 205
第7 章 监控 207
7.1 Telegraf InfluxDB Grafana(上) 208
7.1.1 Telegraf(StatsD) InfluxDB Grafana 简介 208
7.1.2 启动 docker-statsd-influxdb-grafana 208
7.1.3 熟悉 InfluxDB 209
7.1.4 配置 Grafana 210
7.1.5 node-statsd 211
7.1.6 创建 Grafana 图表 213
7.1.7 模拟真实环境 214
7.2 Telegraf InfluxDB Grafana(下) 217
7.2.1 Grafana ELK 217
7.2.2 监控报警 220
7.2.3 脚本一键生成图表 222
第8 章 应用 224
8.1 使用 node-clinic 225
8.2 alinode 227
8.2.1 什么是 alinode 227
8.2.2 创建 alinode 应用 228
8.2.3 安装 alinode 228
8.2.4 使用 alinode 诊断内存泄露 229
8.2.5 使用 alinode 诊断 CPU 性能瓶颈 232

文档截图

QQ截图20190710113855.jpg

Node.js调试指南_赵坤[PDF][73.53MB]

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

下载地址
大家评论