DevEco Device Tool迎來了2.1 Beta1,新版本有很多亮點。在上次“DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平臺的編譯體驗 ”(https://harmonyos.51cto.com/posts/4027)中,我們已經體驗了HI3861在Windows平臺的編譯亮點及工具鏈管理功能的亮點,這次,來體驗一下HI3861開發板在Windows平臺的視覺化分析這個亮點。潤和的HiSpark_Wifi_IoT開發板和小熊派的BEARPI HM_Nano開發板使用的都是海思的Hi3861V100晶片,手頭有小熊派的BEARPI HM_Nano開發板,就用它來做體驗。
開發者在Hi3861開發板上開發應用程式時,需關注記憶體的分配和使用情況。DevEco Device Tool 2.1 Beta1新增了視覺化分析功能——Profiling視覺化分析,通過視覺化的介面展示開發板上執行的應用所佔系統資源和記憶體資源的資訊,助力開發者檢視和分析開發板上各任務堆記憶體和棧記憶體的使用情況,從而及時調整各任務的記憶體和資源分配策略。
先做準備工作:首先建立Profiling視覺化分析任務。在原有的應用程式中增加定時查詢系統資源資訊和記憶體資訊的定時任務後,就可以實現視覺化分析。還是以iothardware應用為例。步驟如下:
1. 進入系統盤使用者目錄下的C:\Users\Administrator\.deveco-device-tool\platforms\hisilicon\profiling\src,複製“app_demo_sysinfo.c“和“app_demo_sysinfo.h“這兩個檔案到鴻蒙應用程式iothardware的目錄下。
2. 這兩個檔案可以定時查詢系統資源資訊和記憶體資訊,需要將這兩檔案新增到應用程式中,並編譯燒錄到3861開發板中。
(1) 在iothardware目錄下的編譯檔案BUILD.gn檔案中新增和更改以下內容:
sources:新增“app_demo_sysinfo.c”原始檔參與編譯。
include_dirs:新增“app_demo_sysinfo.h”標頭檔案相對路徑 "//applications/sample/wifi-iot/app/iothardware",
注意: include_dirs中:需將"//base/iot_hardware/interfaces/kits/wifiiot_lite" 更改為"//base/iot_hardware/peripheral/interfaces/kits",不然後續編譯無法通過,提示"iot_gpio.h"檔案不存在。這個bug相信後續版本會更正過來的。
(2)在當前程式“led_example.c”中新增標頭檔案 #include "app_demo_sysinfo.h"
(3)在入口函式LedExampleEntry中增加呼叫 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,同時將LED_INTERVAL_TIME_US 由3000000改為6000000,閃爍頻率改為為1.2秒一次,更適合人眼觀察。
3.上述幾處修改完成後,儲存。直接在Windows下編譯,燒錄。重啟開發板,板載藍色指示燈開始閃爍。開啟串列埠,大量資訊不斷湧現,有時間,記憶體,任務等資訊。
準備工作完成後,就可以暢快淋漓地體驗DevEco Device Tool 2.1 Beta1視覺化分析的亮點。
在主頁Deveco Home點選側邊欄的“Profiling”,Profiling頁面點選“Live capture”,彈出開發板的串列埠設定選項,無需改動選擇預設值就行,繼續點選“Capture”,就進入視覺化分許頁面。注意開發板的串列埠不能被佔用,不然無法進行視覺化分析。
Heap:實時統計應用堆記憶體當前的使用情況和歷史峰值情況,橫座標是時間資訊,精確到毫秒,每150毫秒資料更新一次。(peak usage :86172 usage : 70988)
Stack:統計應用內各任務的記憶體使用情況,可以通過任務記憶體的峰值比例(Peak%)檢視具體任務的記憶體使用情況,以便更合理的分配每個任務的記憶體大小。LED燈控制的LedTask 任務記憶體使用比例為72.7%。點選各個任務左邊的加號,就可以展示單獨任務的視覺化。
OS Objects:統計系統資源的使用情況,如定時器(timers)、任務(tasks)、佇列(queues)等數量
All in one:統計Heap和Stack的使用情況,實時動態重新整理。
同時,Profiling還支援匯出當前時間段的統計資料,檔案格式為”Excel”和”Json”兩種格式,匯出後,可以繼續用其它方式檢視和精確分析。
作者:鴻聯
想了解更多內容,請訪問51CTO和華為合作共建的鴻蒙社群:https://harmonyos.51cto.com