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

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

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

前言

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

本文淺記下修復(fù)過(guò)程(ps:主要是記錄下啟動(dòng)命令和訪問(wèn)地址)

正文

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

而筆者恰好就犯了定時(shí)器的問(wèn)題,如下圖框紅的位置即是修復(fù)過(guò)后的代碼

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

故,需要借助工具來(lái)排查....

首先想到的肯定是node自身提供的inspect選項(xiàng)了

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

    在node.js中常用的三大模塊中還有一個(gè)是path模塊,主要是為了便利用戶處理路徑問(wèn)題,如果我們?cè)谝胛募臅r(shí)候經(jīng)常會(huì)受到../和./的干擾,那么這個(gè)path模塊將會(huì)很好的幫助你
    2022-09-09
  • Node.js實(shí)現(xiàn)文件上傳

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

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

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

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

    nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法

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

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

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

    node.js中的fs.chownSync方法使用說(shuō)明

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

    Node.js中http模塊和導(dǎo)出共享問(wèn)題

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

    node.js中Socket.IO的進(jìn)階使用技巧

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

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

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

    NodeJS學(xué)習(xí)筆記之Connect中間件模塊(二)

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

最新評(píng)論

和硕县| 兰溪市| 恩施市| 英德市| 久治县| 开化县| 安乡县| 西乌珠穆沁旗| 瑞金市| 临安市| 安仁县| 寿光市| 大同县| 游戏| 滨海县| 弥勒县| 邯郸县| 海阳市| 岳普湖县| 浙江省| 松阳县| 安庆市| 沂源县| 怀来县| 蕲春县| 潍坊市| 沁阳市| 紫金县| 唐河县| 台州市| 霍城县| 广南县| 乐昌市| 湖口县| 固原市| 固阳县| 金阳县| 上栗县| 台山市| 山阳县| 科技|