色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用可靠性與性能不給力?HarmonyOS HiViewDFX了解一下

HarmonyOS開發者 ? 來源:未知 ? 2023-02-04 12:50 ? 次閱讀
作為基礎軟件服務子系統的HarmonyOS HiViewDFX(以下簡稱HiViewDFX)框架,是HarmonyOS的公共基礎設施。包括日志、事件、跟蹤、故障管理及觀測剖析五大部分,同時也提供了故障檢測、定位和性能觀測剖析的開發套件,以及將端側數據直接對接云側大數據質量分析平臺和IDE(Integrated Development Environment, 集成開發環境)調試調優工具。為應對應用開發難題,HiViewDFX提供了高保障能力。

HarmonyOSHiViewDFX框架圖


HiViewDFX介紹

一般地,捕獲異常信號需要自行增加捕獲異常的機制,通過信號來感知異常及采集對應的異常日志,但是往往這類信息無法有效的與系統信息關聯。

HiViewDFX為應用開發者提供了具有輕量級故障檢測、精準的故障定位日志以及快速恢復功能的開發套件,能夠迅速提高應用的可靠性。
如下圖所示,在HarmonyOS系統中首先內置崩潰、泄漏、卡死等輕量級故障檢測器,用來記錄應用在系統側的異常狀態。
其次,在應用程序框架內及運行時增加了異常捕獲能力,使得系統和應用能夠分層檢測和記錄異常信息,通過開放查詢、訂閱、恢復三個API(Application Programming Interface, 應用程序編程接口)提供給開發者。

HarmonyOS應用異常處理框架圖

在應用崩潰和卡死的時候,HiViewDFX提供的精準日志定位功能能夠詳細地記錄異常發生時的日志。
HiViewDFX 提供了對應的應用異常日志查詢接口,將JS_CRASH, CPP_CRASH, APP_FREEZE這三類故障日志提供給開發者,并且是結構化的日志信息,開發者可以從反饋的信息中快速獲取到故障的相關信息。
為給用戶提供更佳的體驗,在日志信息反饋異常數據的基礎上,HiViewDFX提供了應用快速恢復的框架(如下圖),當系統感知到JS_CRASH, CPP_CRASH, APP_FREEZE, KILL等故障之后,能快速通知應用,應用將之前的狀態進行保存,而后系統會自動拉起應用,然后恢復到故障前的原界面。

應用恢復框架圖


HIViewDFX相關工具介紹

HiViewDFX的工具入口---Insight,是DevEco Studio中的插件,擁有眾多系統能力支撐,如圖所示,有調試連接器、HiTrace、HiPerf 以及HiProfiler 框架。
HiViewDFX提供的系統能力包含日志、事件、分布式跟蹤、故障等。

HiViewDFX調試調優架構圖

接下來,就讓我們一起了解下HiViewDFX提供的部分工具吧!
1)調試連接器
如下圖所示,調試連接器是連接上位機和下位機的通道,通常用做嵌入式開發,常用的連接工具,比如,基于串口或者網口的Telnet、SSH等。
HarmonyOS面向不同形態的設備時,這些設備可能不具備網口或者USB端口,只有一個串口,要支持這個,串口上需要具備Shell和文件IO等功能。有了調試連接器作為中轉,就可以讓開發者使用的IDE和其他工具腳本無需面臨硬件的復雜性,更好的關注調試和調優本身。

調試連接器原理示意圖

2)HiTrace
如下圖所示,HiTrace工具用于追蹤進程軌跡,進行程序性能分析,支持內核FTrace預置埋點和用戶態打點。
在性能分析中,Trace是最常用的方式,可以說Trace就是性能的日志,把Trace按照模塊分門別類,這就是Trace的Tag。例如,Sched是操作系統內核的調度信息打點;Ability是Ability模塊在用戶態的關鍵生命周期打點。
假設定位某應用掉幀的問題,在分析時,打開Graphic、Ability、Sched等tag點,可以在Insight里面分析應用在送顯、圖形模塊繪制相關的耗時。

HiTrace工具原理示意圖

3)HiPerf
如下圖所示,HiPerf是為開發者提供的采樣調優分析工具,通過采樣的方式,可以采集CPU PMU、Tracepoints以及程序熱點函數信息,并且和Insight聯動,提供離線和實時分析的能力。
HiPerf采集定位過程中會遇到一個難點:使用跨編程語言,在程序運行時,可能會存在一些跨語言的調用。例如,從JS調用NAPI到C++接口等。
因為是抽樣的調用棧采集,如果只采集其中一種語言的調用棧會導致兩個語言之間的耗時數據無法同步,從而產生沖突,影響性能問題的度量和定位,所以在調用棧采集的時候進行縫合。
HiPerf工具原理示意圖
如下圖所示,這段JS代碼調用了三個內存相關的數據獲取接口,均是NAPI實現的NATIVE接口。
在HiPerf中,首先采集NAPI調用JS的調用棧信息,當采集到一個C++的調用棧時,此時棧頂是函數NativeFunctionCallBack()的NAPI回調,則這個NATIVE調用棧就可以和前一次采集到的JS調用棧合并,最終拼接出一個完整的調用棧。

NAPI調用中JS-CPP棧縫合示意圖

除了上述系統內置的分析點,開發者也可以通過HiTrace接口增加自定義的性能分析打點。
如下列代碼所示,HiTraceMeter的接口比較簡單,找到一段流程的開始和結束,加上Trace打點,就能在Insight中看到Start-End的耗時。
// API
declare namespace hiTraceMeter {
// Async trace
function startTrace(name: string, taskId: number, exceptedTime?: number): void;
function finishTrace(name: string, taskId: number): void;


// Counter trace
function traceByValue(name: string, count: number): void;
}


//example
onWindowStageCreate(windowStage) {
...
hiTraceMeter.startTrace('getMainWindow');
windowStage.getMainWindow().then((win) => {
Appstorage.SetOrCreate(Constants.MAIN_WINDOW, win);
hiTraceMeter.finishTrace('getMainWindow');
...
});
...
}

HiTrace API介紹及開發樣例圖(左右滑動)

4)HiProfiler
HiProfiler 框架是基于HiViewDFX基礎能力構建的一個插件集,可以為Insight提供調優數據采集。
該組件整體分為PC端和設備端兩部分。
PC端最終作為DevEco Studio的插件進行發布,內部主要包括分為UI繪制、設備管理、進程管理、插件管理、數據導入、數據存儲、 數據分析、Session管理、配置管理等模塊。
設備端主要包括命令行工具、服務進程、插件集合、應用程序組件等模塊。
設備端提供了插件擴展能力,對外提供了插件接口,基于該擴展能力可以按需定義自己的能力,并集成到框架中。
HiProfiler框架

如何查詢內存信息

操作系統對內存是分級定義的,從物理地址空間到虛擬地址空間,再分為用戶態和內核態。應用內存調優分析的時候,還需要分解到虛擬地址、Ark JS的內存、NATIVE的內存、字體圖標等資源、So的映射、線程棧等,這些都屬于內存觀測的范圍。
HiViewDFX提供了HiDumper工具,作用是系統信息查詢,它提供了系統版本、CPU占用率、內存以及Sa信息,開發者可以使用HiDumper來分析應用的內存(如下圖)。
開發者分析內存比較關注的是Ark JS Heap以及NATIVE Heap、Pss、Dirty這些指標,如果程序有內存泄漏或者一般的內存膨脹的問題,可以看到這些值會不斷變大。

HiDumper查看內存信息示意圖

如果應用要在程序中監控內存,可以使用這組HiDebug接口(如下列代碼所示),前三個接口是NATIVE內存分配器的統計信息,可以獲取NATIVE分配器的總大小、分配大小和可用大小,后三個接口是從系統Smaps獲取的統計信息,注意這兩個信息不是一個維度上的,不能做數據的等同,在使用場景上也有差異。
// API
declarenamespacehidebug{
functiongetNativeHeapSize():bigint;
function getNativeHeapAllocatedSize(): bigint;
functiongetNativeHeapFreeSize():bigint;
functiongetPss():bigint;
functiongetSharedDirty():bigint;
functiongetPrivateDirty():bigint;
}

HiDebug接口示意圖(左右滑動)

分配器的信息經常用于統計程序中對Native內存的分配情況,不代表這些內存實際被使用,這部分內存是開發者可以控制且可以進行優化的。
而系統Smaps統計信息,常用于程序感知自身內存的實際占用大小,這個大小經常受到分配器延遲釋放、系統延遲回收、Copy-on-write、分配器MetaData額外損耗等,造成統計出來的內存信息和分配器控制的內存不完全等同,往往不能作為內存優化的直接依據,而是作為內存壓力統計的依據。

如何進行內存調優分析

我們通過信息查詢得知了內存的大小信息,那么如何進行內存分析呢?

如下圖所示,右側部分是開發者使用Insight進行分析的樣例。
首先分析泳道圖上的內存曲線,得到三類數據,JS、Native和虛擬內存,它們采集的分配信息基本都比較相似。例如,圖中分配信息部分,名字和調用棧,是區分一塊內存的重要信息,地址和大小是一塊內存的基本信息。引用關系可以幫助我們建立內存之間的關系樹,幫助我們更快找到內存的引入點。分配時間則可以幫助開發者了解哪些內存會長時間存留,長時間存留的內存是需要重點關注的。

內存分析數據采集原理圖

另外,雖然虛擬內存在64位上可能不是一個痛點問題,但是在32位程序上經常會導致問題。32位程序的地址空間只有4GB,如果是32位內核,那么用戶態一般情況只有3GB地址空間,這種情況下開發者需要關注虛擬內存的使用情況,HarmonyOS的做法是在Mmap的地方進行Hook,拿到分配的調用棧,并且對系統映射的絕大多數匿名頁都進行了命名。因此不論是文件頁還是匿名頁,在分配信息中都能看到頁的命名信息,這對于內存分析非常有幫助。

以上就是HiViewDFX提供的可靠性和性能優化調試調優能力的相關介紹了,歡迎廣大開發者使用HiViewDFX框架來開發一個高可靠高性能的應用!


END


想了解更多HarmonyOS技術?

后臺留言給我們

立刻安排!


歡迎點擊|閱讀原文

搜索關鍵字"dfx"查看更多信息


原文標題:應用可靠性與性能不給力?HarmonyOS HiViewDFX了解一下

文章出處:【微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1977

    瀏覽量

    30264

原文標題:應用可靠性與性能不給力?HarmonyOS HiViewDFX了解一下

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    驅動鈦絲(SMA)的可靠性設計(4) 力量設計

    發生運動。相比于傳統的電機、電磁鐵動力,鈦絲是種新型的動力元件。鈦絲驅動技術目前已經在航空航天、洲際導彈、無人機、手機、汽車、機器人等科技領域投入使用。本文通過分享、普及鈦絲驅動技術的可靠性
    發表于 11-27 17:49

    半導體封裝的可靠性測試及標準

    產品可靠性是指產品在規定的使用條件定時間內,能夠正常運行而不發生故障的能力。它是衡量產品質量的重要指標,對提高客戶滿意度和復購率具有重要影響。金鑒實驗室作為家提供檢測、鑒定、認
    的頭像 發表于 11-21 14:36 ?218次閱讀
    半導體封裝的<b class='flag-5'>可靠性</b>測試及標準

    PCB高可靠性化要求與發展——PCB高可靠性的影響因素(上)

    在電子工業的快速發展中,印刷電路板(PCB)的可靠性始終是設計和制造的核心考量。隨著集成電路(IC)的集成度不斷提升,PCB不僅需要實現更高的組裝密度,還要應對高頻信號傳輸的挑戰。這些趨勢對PCB
    的頭像 發表于 10-11 11:20 ?355次閱讀
    PCB高<b class='flag-5'>可靠性</b>化要求與發展——PCB高<b class='flag-5'>可靠性</b>的影響因素(上)

    深入了解IXYS固態繼電器:可靠性與應用領域的完美結合

    的控制電路中。它們不僅提高了設備的安全,還減少了因機械磨損導致的故障率。 總的來說,固態繼電器作為種高性能的電子開關,在各個領域中都發揮著至關重要的作用。IXYS 提供的固態繼電器以其卓越的
    發表于 08-27 15:26

    PCBA測試詳解:功能、性能可靠性文掌握核心要點!

    PCBA(Printed Circuit Board Assembly)測試是電子產品制造過程中至關重要的環。它旨在確保電路板及其上安裝的電子元器件按照設計要求正確工作,從而達到預期的性能可靠性
    的頭像 發表于 08-27 10:26 ?3398次閱讀
    PCBA測試詳解:功能、<b class='flag-5'>性能</b>、<b class='flag-5'>可靠性</b>,<b class='flag-5'>一</b>文掌握核心要點!

    汽車功能安全與可靠性的關系

    當前,隨著汽車領域的飛速發展,汽車也被重新定義。在汽車電子電氣系統設計時,離不開對功能安全和可靠性設計的考慮。正確理解兩者之間的關系,有助于更好地分析問題和解決問題。什么是汽車可靠性汽車可靠性是指
    的頭像 發表于 07-13 08:28 ?3226次閱讀
    汽車功能安全與<b class='flag-5'>可靠性</b>的關系

    FHT4644國產替代必然崛起你還不來了解一下芯片這些事嗎

    FHT4644國產替代必然崛起你還不來了解一下芯片這些事嗎 國產芯片崛起,讓國內發展環境變得更加穩定,國產芯片FHT4644通過性能實驗測試,更高效。實驗室常溫條件
    發表于 06-24 17:38

    顯示器可靠性高低溫濕熱試驗方法_環境可靠性試驗設備

    濕熱試驗的方法和步驟。   高低溫濕熱試驗旨在模擬顯示器在不同溫度和濕度條件的工作環境,評估其性能可靠性。通過這種試驗,可以發現顯示器在極端環境的潛在問題,為
    的頭像 發表于 06-21 17:39 ?580次閱讀
    顯示器<b class='flag-5'>可靠性</b>高低溫濕熱試驗方法_環境<b class='flag-5'>可靠性</b>試驗設備

    請問FATFS文件系統可靠性如何?

    ST官方固件庫中使用了FATFS文件系統,想問下,這個文件系統可靠么? 我想了解一下,有哪位朋友真正產品上使用FATFS文件系統,可靠性有什么問題沒有。
    發表于 05-16 06:35

    提升開關電源可靠性:全面了解測試項目與標準

    開關電源可靠性測試是檢測開關電源質量、穩定性和質量的重要手段。可靠性測試也是開關電源測試的關鍵環節,以此評估開關電源的性能和使用壽命。
    的頭像 發表于 03-21 15:50 ?944次閱讀

    可靠性測試中HALT實驗與HASS實驗的區別

    電子產品高加速壽命測試HALT、高加速應力篩選測試HASS,都是可靠性測試的方法,用于評估電子產品在惡劣環境性能表現和可靠性。那他們之前的區別是什么呢,跟隨本文來
    的頭像 發表于 01-30 10:25 ?1281次閱讀
    <b class='flag-5'>可靠性</b>測試中HALT實驗與HASS實驗的區別

    線路板變形對電路性能可靠性有影響嗎?

    線路板變形對電路性能可靠性有影響嗎? 線路板是連接和組織電子元件的重要組成部分。線路板的設計和制造對電路性能可靠性有著重要的影響。線路板的變形可能會導致電路的信號傳輸受損、電子元件
    的頭像 發表于 01-29 13:58 ?691次閱讀

    美國站群服務器優化:提升性能可靠性的關鍵功能

    隨著互聯網的迅猛發展,網站的性能可靠性成為了企業成功的關鍵因素之。美國作為全球互聯網的中心,其站群服務器在全球范圍內都有著廣泛的應用。本文將探討美國站群服務器優化的關鍵功能,以提升其性能
    的頭像 發表于 01-25 11:56 ?351次閱讀

    如何確保IGBT的產品可靠性

    標準。安森美(onsemi)作為家半導體供應商,為高要求的應用提供能在惡劣環境運行的產品,且這些產品達到了高品質和高可靠性。之前我們分享了如何對IGBT進行可靠性測試,今天我們來介
    的頭像 發表于 01-25 10:21 ?1660次閱讀
    如何確保IGBT的產品<b class='flag-5'>可靠性</b>

    IGBT的可靠性測試方案

    標準。安森美 (onsemi) 作為家半導體供應商,為高要求的應用提供能在惡劣環境運行的產品,且這些產品達到了高品質和高可靠性
    的頭像 發表于 01-17 09:56 ?1483次閱讀
    IGBT的<b class='flag-5'>可靠性</b>測試方案
    主站蜘蛛池模板: 免费撕开胸罩吮胸视频| 歪歪漫画羞羞漫画国产| 伊人久久大香线蕉综合亚洲| 国产呦精品一区二区三区下载 | 超碰久久国产vs| 日日操夜夜操天天操| 国产午夜一级鲁丝片| 正在播放久久| 入禽太深免费视频10| 精品国产高清自在线看| 99re久久精品在线播放| 丝袜情趣在线资源二区| 久久人人爽人人片AV人成| 国精产品一区一区三区M| 最近中文字幕2019国语4| 日本高清免费在线观看| 黑人强伦姧人妻日韩那庞大的 | 男人就爱吃这套下载| 国产麻豆剧看黄在线观看| 最懂男人心论坛| 色婷婷AV99XX| 美女张开腿露尿口给男人亲| 国产精品九九久久精品视| 9277在线观看资源| 亚洲高清国产拍精品5g| 欧美性xxxxxx爱| 久草在线在线精品观看99| 古代荡乳尤物H妓女调教| 在线亚洲专区中文字幕| 无罩看奶禁18| 秋霞成人午夜鲁丝一区二区三区| 好男人在线视频| 公么我好爽再深一点| 9999精品视频| 伊人久久大香线蕉观看| 午夜免费福利小电影| 欧美在线视频一区| 萝莉御姐被吸奶| 护士日本ⅹxxx丰满hd| 国产AV亚洲一区精午夜麻豆| av网站视频在线观看|