再見,本地環(huán)境!騰訊云全球首發(fā):Serverless在線遠(yuǎn)程調(diào)試

來源: TencentServerless
作者:松鵝
時(shí)間:2021-01-07
17194
本篇文章將以一段內(nèi)存泄漏的代碼為例,給大家展示如何使用云函數(shù)在線調(diào)試功能定位和解決問題。Node10及以上版本的runtime,使用Chrome瀏覽器打開云函數(shù)控制臺(tái),在函數(shù)代碼頁即可看到在線調(diào)試的入口。

在線調(diào)試是云函數(shù)為了解決用戶在本地搭建調(diào)試環(huán)境復(fù)雜,云上環(huán)境不便于定位等問題推出的功能。

云上的各種服務(wù),在本地?zé)o法完全模擬,程序員大都遇到過本地和遠(yuǎn)程環(huán)境運(yùn)行結(jié)果不一致的情形,追查起來費(fèi)時(shí)費(fèi)力,不僅效率低下,也造成非常郁悶的工作體驗(yàn)。

所以,能否直接在遠(yuǎn)程環(huán)境中完成全部的開發(fā)流程,是提升開發(fā)體驗(yàn)的最直接手段,然而在其他問題都解決后,遠(yuǎn)程調(diào)試功能是最后的一公里。

本篇文章將以一段內(nèi)存泄漏的代碼為例,給大家展示如何使用云函數(shù)在線調(diào)試功能定位和解決問題。Node10及以上版本的runtime,使用Chrome瀏覽器打開云函數(shù)控制臺(tái),在函數(shù)代碼頁即可看到在線調(diào)試的入口。

開啟調(diào)試模式

使用Chrome瀏覽器打開函數(shù)代碼編輯頁,可以看到在【遠(yuǎn)程調(diào)試】頁。為保障調(diào)試的體驗(yàn),開啟調(diào)試模式將修改函數(shù)的部分配置,包括函數(shù)進(jìn)入單實(shí)例模式、函數(shù)超時(shí)時(shí)間修改為900秒等。開啟前請(qǐng)務(wù)必確認(rèn)這些調(diào)整。

640.png

待加載完成后,頁面將自動(dòng)展示入口文件。

找不到需要的文件?

使用快捷鍵Cmd+P(Mac)或Ctrl+P(Windows)可以打開所需要的文件。但大家可能會(huì)發(fā)現(xiàn),剛開啟調(diào)試模式時(shí),打開文件的列表中找不到所需要的文件。這是因?yàn)閷?duì)于動(dòng)態(tài)腳本語言來說,調(diào)試器不會(huì)加載所有的內(nèi)容,只會(huì)加載執(zhí)行過的文件。我們先點(diǎn)擊測(cè)試,讓函數(shù)運(yùn)行一次。在運(yùn)行一次后,我們就可以打開所需要的文件了。

640 (1).png

設(shè)置斷點(diǎn)

在代碼前點(diǎn)擊即可設(shè)置斷點(diǎn),在右上角的工具中可以進(jìn)行繼續(xù)執(zhí)行、跨步執(zhí)行、單步執(zhí)行等操作,也可以靈活地啟動(dòng)或禁用斷點(diǎn)。

640 (2).png

內(nèi)存泄漏排查-內(nèi)存快照

這部分介紹如何使用內(nèi)存快照功能排查內(nèi)存泄漏的問題。內(nèi)存泄漏的排查方法大致為:找準(zhǔn)內(nèi)存泄漏的時(shí)機(jī),在泄漏的前后對(duì)內(nèi)存進(jìn)行快照,通過對(duì)比快照的內(nèi)容判斷內(nèi)存泄漏的問題點(diǎn)。

首先,我們將調(diào)試的窗口切換到Memory頁面,點(diǎn)擊左上方的實(shí)心圓形按鈕捕捉內(nèi)存快照。

640 (3).png

這樣,我們就有了運(yùn)行前的內(nèi)存快照。現(xiàn)在我們執(zhí)行存在內(nèi)存泄漏的代碼。這行代碼有一個(gè)從未清理的全局緩存,隨著調(diào)用的增加,越來越占內(nèi)存。

640 (4).png

隨后,我們進(jìn)行第二次內(nèi)存快照,打開對(duì)比頁面,通過對(duì)Delta值的分析,可以發(fā)現(xiàn)concatenated string這個(gè)部分增加了很多,很有可能有問題。

640.webp.jpg

打開以后,便可以發(fā)現(xiàn)內(nèi)存中多存儲(chǔ)了很多“recording time”的數(shù)據(jù)。

640.webp (2).jpg

這些重復(fù)性的數(shù)據(jù)也就意味著代碼中出現(xiàn)了內(nèi)存泄漏,在代碼中找到相關(guān)內(nèi)容,進(jìn)行調(diào)整,解決內(nèi)存泄漏的問題。

除了云函數(shù)的控制臺(tái),也可以使用Serverless Framework Dev模式開啟在線調(diào)試的功能。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于TencentServerless,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
即日起,騰訊云PostgreSQL全面支持PostgreSQL 17.0。所有用戶可使用大版本升級(jí)能力升級(jí)至最新的PostgreSQL 17.0進(jìn)行體驗(yàn),也可以在產(chǎn)品購(gòu)買頁直接購(gòu)買。
騰訊云
云服務(wù)
2024-12-152024-12-15
高可用這個(gè)問題,加機(jī)器就能解決?
高可用這個(gè)問題,加機(jī)器就能解決?
互聯(lián)網(wǎng)服務(wù)的可用性問題是困擾企業(yè)IT人員的達(dá)摩克利斯之劍:防于未然,體現(xiàn)不出價(jià)值。已然發(fā)生,又面臨P0危機(jī)。就更別提穩(wěn)定性建設(shè)背后顯性的IT預(yù)算問題與隱性的人員成本問題。
騰訊云
云服務(wù)
2024-11-252024-11-25
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
HBase憑借其高可用性、高擴(kuò)展性和強(qiáng)一致性,以及在廉價(jià)PC服務(wù)器上的低部署成本,廣泛應(yīng)用于大規(guī)模數(shù)據(jù)分析。
騰訊云
云服務(wù)
2024-11-042024-11-04
復(fù)雜查詢性能弱,只讀分析引擎來幫忙
復(fù)雜查詢性能弱,只讀分析引擎來幫忙
隨著當(dāng)今業(yè)務(wù)的高速發(fā)展,復(fù)雜多表關(guān)聯(lián)的場(chǎng)景越來越普遍。但基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)在進(jìn)行復(fù)雜查詢時(shí)性能相對(duì)較弱。
騰訊云
云服務(wù)
2024-11-022024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家