-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Node.js調試指南

( 簡體 字)
作者:趙坤類別:1. -> 程式設計 -> 網路編程 -> Node.js
譯者:
出版社:電子工業出版社Node.js調試指南 3dWoo書號: 49132
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:5/1/2018
頁數:248
光碟數:0
站長推薦:
印刷:全彩印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121341465
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

筆者和同事在過去一年多主要把工作精力放在如何提高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、王政、楊海劍、黃一君在百忙之中抽出時間審閱本書并給出反饋。謝謝你們。

交流& 勘誤

掃描下方的二維碼,便可與筆者交流并提交勘誤,您的反饋及意見對筆者來說非常重要,再次感謝!
內容簡介:

《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
序: