国人精品视频在线观看,欧美综合国产精品绿播,亚洲字幕一区二区精品,青草国产免费频在线观看

<thead id="8zwyv"><dd id="8zwyv"><legend id="8zwyv"></legend></dd></thead>
<output id="8zwyv"></output>
    <ol id="8zwyv"><nobr id="8zwyv"><th id="8zwyv"></th></nobr></ol>
    <sup id="8zwyv"><thead id="8zwyv"><pre id="8zwyv"></pre></thead></sup>
    <output id="8zwyv"></output>
    洋溪槎溪交友社區(qū)   洋溪槎溪信息資訊   槎溪鎮(zhèn)之窗   風景特色   槎溪校友錄   騰飛論壇   本站留言

    Node.js技術原理分析系列——Node.js調試能力分析

    發(fā)布:2025-2-15 12:55 | 作者:sichaoyun | 來源:本站 | 查看:73次 | 字號:

     openeuler安裝mysql

      Node.js 是一個開源的、跨平臺的 JavaScript 運行時環(huán)境,它允許開發(fā)者在服務器端運行 JavaScript 代碼。Node.js 是基于 Chrome V8引擎構建的,專為高性能、高并發(fā)的網絡應用而設計,廣泛應用于構建服務器端應用程序、網絡應用、命令行工具等。

      本系列將分為9篇文章為大家介紹 Node.js 技術原理:從調試能力分析到內置模塊新增,從性能分析工具 perf_hooks 的用法到 Chrome DevTools 的性能問題剖析,再到 ABI 穩(wěn)定的理解、基于 V8 封裝 JavaScript 運行時、模塊加載方式探究、內置模塊外置以及 Node.js addon 的全面解讀等主題,每一篇都干貨滿滿。

      inspector 是什么

      直接取官方文檔中,對 inspector 的定義:

      The node:inspector module provides an API for interacting with the V8 inspector.

      翻譯過來就是,inspector 模塊提供了一組用于和 V8 inspector 交互的 API 。

      解讀:

      node inspector 是 Node.js 內置模塊

      node inspector 僅提供與 V8 inspector 交互的能力,其本身并沒有調試能力

      Node.js 調試能力來自 V8 inspector

      Node.js 調試原理

      調試的目的是通過觀察運行時數據來定位問題。Node.js 的運行時數據由 V8 引擎管理,為了實現調試功能,V8封裝了一套 api 供外部查看運行時數據,這套 api 名字就是 V8 inspector(運行時是一個 websocket 服務)。V8 inspector 由于調試協(xié)議不同,不能直接與 Chrome DevTools 交互,于是 Node.js 提供了 inspector 模塊,運行時也會啟動一個 websocket 服務,用于適配。

      如圖所示,進入 Node.js 調試模式前,主線程需要創(chuàng)建一個 debugger server( websocket 服務,即時通訊服務,也即 node inspector ),用來實現 debugger client(例如 vscode 調試器或 Chrome DevTools ) 與 V8 inspector 通信,V8 inspector 再獲取 Node.js 服務的數據,最終實現單步調試等功能。

      經過封裝與簡化后,launch 模式啟動調試時我們甚至感知不到 debugger server 了,但是它一定是存在的。

      深入分析 – inspect 參數

      分析過程中,我對相關源碼做了粗讀,除了源碼本身,還參考了這篇文章:https://theanarkh.github.io/understand-nodejs/chapter24-Inspector/#11

      如上圖所示,表示的是 Node.js 調試模式啟動過程,大部分節(jié)點都是中文表述+函數名。

      當我們用 node --inspect test.js 啟動一個 js 腳本時,程序會啟動 debugger server(一個 websocket 服務)。如上圖所示,相關邏輯都在初始化 inspector 部分(藍色節(jié)點),接下來細看一下這部分代碼。

    ★ 友情鏈接 ★  洋溪槎溪信息  洋溪槎溪交友中心  槎溪信息網  槎溪論壇  圖文軟件下載  網站收錄導航  網址信息查詢