登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

『簡體書』Node.js调试指南(全彩)

書城自編碼: 3191745
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作 者: 赵坤
國際書號(ISBN): 9787121341465
出版社: 电子工业出版社
出版日期: 2018-06-01
版次: 1

書度/開本: 16开 釘裝: 平装

售價:NT$ 579

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
谁是窃书之人 日本文坛新锐作家深绿野分著 无限流×悬疑×幻想小说
《 谁是窃书之人 日本文坛新锐作家深绿野分著 无限流×悬疑×幻想小说 》

售價:NT$ 254.0
一个经济杀手的自白 第3版
《 一个经济杀手的自白 第3版 》

售價:NT$ 505.0
8秒按压告别疼痛
《 8秒按压告别疼痛 》

售價:NT$ 398.0
津巴多时间心理学:挣脱束缚、改写命运的6种时间观
《 津巴多时间心理学:挣脱束缚、改写命运的6种时间观 》

售價:NT$ 352.0
大英博物馆东南亚简史
《 大英博物馆东南亚简史 》

售價:NT$ 806.0
纯粹·我只要少许
《 纯粹·我只要少许 》

售價:NT$ 367.0
投机苦旅:一位投机客的凤凰涅槃
《 投机苦旅:一位投机客的凤凰涅槃 》

售價:NT$ 403.0
重返马赛渔场:社会规范与私人治理的局限
《 重返马赛渔场:社会规范与私人治理的局限 》

售價:NT$ 316.0

建議一齊購買:

+

NT$ 514
《 Koa与Node.js开发实战 》
+

NT$ 579
《 Node.js实战 第2版 》
+

NT$ 579
《 Node.js实战:使用Egg.js+Vue.js+Docker构建渐进式、可持续集成与交付应用 》
+

NT$ 709
《 Node.js:来一打 C++ 扩展 》
+

NT$ 702
《 Node.js设计模式(第2版) 》
+

NT$ 319
《 新时期的Node.js入门 》
編輯推薦:
Node.js经典《Node.js实战(双色)》及《Node.js实战(第2季)》作者又一力作
专门讲调试的Node.js书,资料少有,从CPU、内存、代码、工具、APM、日志、监控、应用8方面讲解
大部分小节都会以一段经典的问题代码为例进行分析并给出解决方案
Node.js进阶参考书,适合有一定Node.js
开发经验的人阅读
只讲干货,没废话
內容簡介:
《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 开发经验的人阅读。笔者倾向于将本书定位成参考书,每一小节基本独立,如果遇到相关问题,则可以随时翻到相应的章节进行阅读。
關於作者:
赵坤,网名nswbmw,资深 Node.js开发者,开源项目Paloma、Mongolass和EverBlog作者,崇尚开源,热爱分享。
曾出版《Node.js实战(双色)》和《Node.js实战(第2季)》。
目錄
第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 PromiseA规范 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 trycatch 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 技巧 2skipFiles 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
內容試閱
笔者和同事在过去一年多主要把工作精力放在如何提高Node.js 服务端的性能、稳定性和基础设施搭建上,随着公司业务量的快速增长,我们遇到了各种各样的挑战,也取得了不错的成绩:从起初啥都没有,到后来建立了比较完善的日志、监控和报警系统;从起初遇到问题不知道如何下手,到后来在遇到问题时能及时发现并定位问题。总之,付出得到了回报。
笔者曾将在这一段时间内遇到的调试、调优过程整理并记录成文章,发表在公司的知乎专栏上,本书就是在其基础上修改、补充和润色而成的,算是笔者对这几年在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
开发经验的人阅读。笔者倾向于将本书定位成参考书,每一小节基本独立,如果遇到相关问题,则可以随时翻到相应的章节进行阅读。
开发环境
MacOS 或 Linux(Ubuntu@16.04 64 位),Windows 用户请在使用虚拟机安装Ubuntu 后进行操作。
Node.js@8.9.4。
致谢
感谢石墨文档为笔者提供了良好的成长环境和技术氛围,感谢一起努力并解决问题的同事们,感谢张国霞编辑的耐心指导,感谢寸志、老雷、Yorkie、王政、杨海剑、黄一君在百忙之中抽出时间审阅本书并给出反馈。谢谢你们。
交流& 勘误
扫描下方的二维码,便可与笔者交流并提交勘误,您的反馈及意见对笔者来说非常重要,再次感谢!

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.