DevEco Device Tool 2.1 Beta1在Hi3861開發(fā)板上可視化分析的體驗(yàn)
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
DevEco Device Tool迎來了2.1 Beta1,新版本有很多亮點(diǎn)。在上次“DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平臺(tái)的編譯體驗(yàn) ”(https://harmonyos.51cto.com/posts/4027)中,我們已經(jīng)體驗(yàn)了HI3861在Windows平臺(tái)的編譯亮點(diǎn)及工具鏈管理功能的亮點(diǎn),這次,來體驗(yàn)一下HI3861開發(fā)板在Windows平臺(tái)的可視化分析這個(gè)亮點(diǎn)。潤(rùn)和的HiSpark_Wifi_IoT開發(fā)板和小熊派的BEARPI HM_Nano開發(fā)板使用的都是海思的Hi3861V100芯片,手頭有小熊派的BEARPI HM_Nano開發(fā)板,就用它來做體驗(yàn)。
開發(fā)者在Hi3861開發(fā)板上開發(fā)應(yīng)用程序時(shí),需關(guān)注內(nèi)存的分配和使用情況。DevEco Device Tool 2.1 Beta1新增了可視化分析功能——Profiling可視化分析,通過可視化的界面展示開發(fā)板上運(yùn)行的應(yīng)用所占系統(tǒng)資源和內(nèi)存資源的信息,助力開發(fā)者查看和分析開發(fā)板上各任務(wù)堆內(nèi)存和棧內(nèi)存的使用情況,從而及時(shí)調(diào)整各任務(wù)的內(nèi)存和資源分配策略。
先做準(zhǔn)備工作:首先創(chuàng)建Profiling可視化分析任務(wù)。在原有的應(yīng)用程序中增加定時(shí)查詢系統(tǒng)資源信息和內(nèi)存信息的定時(shí)任務(wù)后,就可以實(shí)現(xiàn)可視化分析。還是以iothardware應(yīng)用為例。步驟如下:
1. 進(jìn)入系統(tǒng)盤用戶目錄下的C:\Users\Administrator\.deveco-device-tool\platforms\hisilicon\profiling\src,復(fù)制“app_demo_sysinfo.c“和“app_demo_sysinfo.h“這兩個(gè)文件到鴻蒙應(yīng)用程序iothardware的目錄下。
2. 這兩個(gè)文件可以定時(shí)查詢系統(tǒng)資源信息和內(nèi)存信息,需要將這兩文件添加到應(yīng)用程序中,并編譯燒錄到3861開發(fā)板中。
(1) 在iothardware目錄下的編譯文件BUILD.gn文件中添加和更改以下內(nèi)容:
sources:添加“app_demo_sysinfo.c”源文件參與編譯。
include_dirs:添加“app_demo_sysinfo.h”頭文件相對(duì)路徑 "//applications/sample/wifi-iot/app/iothardware",
注意: include_dirs中:需將"//base/iot_hardware/interfaces/kits/wifiiot_lite" 更改為"//base/iot_hardware/peripheral/interfaces/kits",不然后續(xù)編譯無法通過,提示"iot_gpio.h"文件不存在。這個(gè)bug相信后續(xù)版本會(huì)更正過來的。
(2)在當(dāng)前程序“led_example.c”中添加頭文件 #include "app_demo_sysinfo.h"
(3)在入口函數(shù)LedExampleEntry中增加調(diào)用 app_demo_heap_task();
(4)按慣例,修改app/BUILD.gn,使iothardware參與編譯。
(5)另外,小熊派板載指示燈是GPIO 2,只需將“applications\sample\wifi-iot\app\iothardware\led_example.c”的#define LED_TEST_GPIO改為2,同時(shí)將LED_INTERVAL_TIME_US 由3000000改為6000000,閃爍頻率改為為1.2秒一次,更適合人眼觀察。
3.上述幾處修改完成后,保存。直接在Windows下編譯,燒錄。重啟開發(fā)板,板載藍(lán)色指示燈開始閃爍。打開串口,大量信息不斷涌現(xiàn),有時(shí)間,內(nèi)存,任務(wù)等信息。
準(zhǔn)備工作完成后,就可以暢快淋漓地體驗(yàn)DevEco Device Tool 2.1 Beta1可視化分析的亮點(diǎn)。
在主頁Deveco Home點(diǎn)擊側(cè)邊欄的“Profiling”,Profiling頁面點(diǎn)擊“Live capture”,彈出開發(fā)板的串口設(shè)置選項(xiàng),無需改動(dòng)選擇默認(rèn)值就行,繼續(xù)點(diǎn)擊“Capture”,就進(jìn)入可視化分許頁面。注意開發(fā)板的串口不能被占用,不然無法進(jìn)行可視化分析。
Heap:實(shí)時(shí)統(tǒng)計(jì)應(yīng)用堆內(nèi)存當(dāng)前的使用情況和歷史峰值情況,橫坐標(biāo)是時(shí)間信息,精確到毫秒,每150毫秒數(shù)據(jù)更新一次。(peak usage :86172 usage : 70988)
Stack:統(tǒng)計(jì)應(yīng)用內(nèi)各任務(wù)的內(nèi)存使用情況,可以通過任務(wù)內(nèi)存的峰值比例(Peak%)查看具體任務(wù)的內(nèi)存使用情況,以便更合理的分配每個(gè)任務(wù)的內(nèi)存大小。LED燈控制的LedTask 任務(wù)內(nèi)存使用比例為72.7%。點(diǎn)擊各個(gè)任務(wù)左邊的加號(hào),就可以展示單獨(dú)任務(wù)的可視化。
OS Objects:統(tǒng)計(jì)系統(tǒng)資源的使用情況,如定時(shí)器(timers)、任務(wù)(tasks)、隊(duì)列(queues)等數(shù)量
All in one:統(tǒng)計(jì)Heap和Stack的使用情況,實(shí)時(shí)動(dòng)態(tài)刷新。
同時(shí),Profiling還支持導(dǎo)出當(dāng)前時(shí)間段的統(tǒng)計(jì)數(shù)據(jù),文件格式為”Excel”和”Json”兩種格式,導(dǎo)出后,可以繼續(xù)用其它方式查看和精確分析。
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)