最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node內(nèi)存泄漏排查與修復過程

 更新時間:2024年06月19日 08:54:53   作者:Sir_蘇  
之前開發(fā)了一個node接口,該接口使用canvas繪制產(chǎn)品圖提供給java端使用,在運行了一段時間后發(fā)現(xiàn)了內(nèi)存泄漏問題,本文淺記下修復過程,文章通過圖文介紹的非常詳細,需要的朋友可以參考下

前言

之前開發(fā)了一個node接口,該接口使用canvas繪制產(chǎn)品圖提供給java端使用,在運行了一段時間后發(fā)現(xiàn)了內(nèi)存泄漏問題

本文淺記下修復過程(ps:主要是記錄下啟動命令和訪問地址)

正文

內(nèi)存泄漏指的是未被js引擎自動回收的內(nèi)存,它多出現(xiàn)在定時器、dom事件和閉包

而筆者恰好就犯了定時器的問題,如下圖框紅的位置即是修復過后的代碼

但這似乎并不是主因,內(nèi)存仍然在隨著時間的推移而不斷增加

故,需要借助工具來排查....

首先想到的肯定是node自身提供的inspect選項了

node --inspect --heapsnapshot-signal=SIGUSR2 ./xxx.js

重新啟動后,在chrome瀏覽器訪問chrome://inspect/#devices,正常會出現(xiàn)如下頁面

點擊框紅的位置,進入調(diào)試控制臺切換到內(nèi)存選項卡并生成初始快照,方便對比分析

然后訪問接口,嘗試復現(xiàn)問題

在新的快照中對比,發(fā)現(xiàn)canvas生成的圖片uri會隨著調(diào)用次數(shù)增加,這正是內(nèi)存不斷增加的罪魁禍首

最后,在代碼中找到生成該data uri的地方

它被掛載到了上下文,根據(jù)該ctx的傳入路徑,它來自變量helpers對象的toWebAttrs方法,該對象被筆者定義到了頁面頂部,即接口回調(diào)的外部,也就是說沿著閉包路徑被留存了

因此,只需要在用完后delete掉即可

到此這篇關(guān)于node內(nèi)存泄漏排查與修復過程的文章就介紹到這了,更多相關(guān)node內(nèi)存泄漏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js常用三大模塊之path模塊

    Node.js常用三大模塊之path模塊

    在node.js中常用的三大模塊中還有一個是path模塊,主要是為了便利用戶處理路徑問題,如果我們在引入文件的時候經(jīng)常會受到../和./的干擾,那么這個path模塊將會很好的幫助你
    2022-09-09
  • Node.js實現(xiàn)文件上傳

    Node.js實現(xiàn)文件上傳

    這篇文章主要介紹了Node.js實現(xiàn)文件上傳的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • node.js +mongdb實現(xiàn)登錄功能

    node.js +mongdb實現(xiàn)登錄功能

    這篇文章主要介紹了node.js +mongdb實現(xiàn)登錄功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • nvm版本導致npm?install報錯Unexpected?token?'.'的解決辦法

    nvm版本導致npm?install報錯Unexpected?token?'.'的解決辦法

    最近做項目遇到npm install 的問題,下面這篇文章主要給大家介紹了關(guān)于nvm版本導致npm?install報錯Unexpected?token?'.'的解決辦法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 圖解NodeJS實現(xiàn)登錄注冊功能

    圖解NodeJS實現(xiàn)登錄注冊功能

    這篇文章主要介紹了NodeJS實現(xiàn)登錄注冊功能,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • node.js中的fs.chownSync方法使用說明

    node.js中的fs.chownSync方法使用說明

    這篇文章主要介紹了node.js中的fs.chownSync方法使用說明,本文介紹了fs.chownSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js中http模塊和導出共享問題

    Node.js中http模塊和導出共享問題

    這篇文章主要介紹了Node.js中http模塊和導出共享,通過?http?模塊提供的?http.createServer()?方法,就能方便的把一臺普通的電腦,變成一臺?web?服務器,從而對外提供?web?資源服務,本文給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • node.js中Socket.IO的進階使用技巧

    node.js中Socket.IO的進階使用技巧

    這篇文章主要介紹了node.js中Socket.IO的進階使用技巧,本文講解了配置、房間、事件、授權(quán)等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • node異步方法的異步調(diào)用與同步調(diào)用實現(xiàn)方法示例

    node異步方法的異步調(diào)用與同步調(diào)用實現(xiàn)方法示例

    這篇文章主要介紹了node異步方法的異步調(diào)用與同步調(diào)用實現(xiàn)方法,結(jié)合實例形式分析了node.js異步操作類的封裝以及同步、異步兩種調(diào)用方式,需要的朋友可以參考下
    2023-05-05
  • NodeJS學習筆記之Connect中間件模塊(二)

    NodeJS學習筆記之Connect中間件模塊(二)

    本文續(xù)上文的內(nèi)容,介紹下nodejs中connect中間件的使用方式及用途,希望大家喜歡。
    2015-01-01

最新評論

新和县| 五指山市| 郯城县| 宁国市| 佛学| 南平市| 台东县| 哈密市| 大关县| 云梦县| 且末县| 凌源市| 临澧县| 西宁市| 肥乡县| 辽中县| 上杭县| 秦皇岛市| 江安县| 驻马店市| 雷山县| 大埔区| 乐山市| 龙州县| 日照市| 开封市| 文登市| 山西省| 苏州市| 正宁县| 华坪县| 瓦房店市| 元谋县| 阿巴嘎旗| 象州县| 游戏| 通城县| 垣曲县| 阆中市| 东宁县| 固镇县|