国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

OpenHarmony標準系統開機時長優化

OpenAtom OpenHarmony ? 來源:未知 ? 2023-04-08 02:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

點擊藍字 ╳ 關注我們


開源項目 OpenHarmony
是每個人的 OpenHarmony

戴學躍

深圳市優博終端科技有限公司

OpenHarmony知識體系工作組

簡介

萬物互聯時代,產品性能至關重要,而系統啟動時間是系統性能的重要組成部分,因為用戶必須等待系統啟動完成后才能使用設備。對于經常需要進行冷啟動的汽車等設備而言,較短的啟動時間至關重要(沒有人喜歡在等待幾十秒后才能輸入導航目的地),在金融交易設備、電子商務服務器、實時通信設備同樣也有較高的應用場景,那我們該如何在OpenAtom OpenHarmony(簡稱OpenHarmony ) 標準系統現有的能力下,完成秒級開機?本文由深圳市優博終端科技有限公司的研發同學介紹一套關于優化OpenHarmony標準系統開機時長優化的方案,通過對硬件、Kernel、 Framework的相應優化讓系統開機時長盡量縮短。

效果展示

下面給出系統開機時長優化前后的對比效果視頻,優化前的開機時長在18秒左右,優化后的開機時間在7秒左右。



開發環境

硬件平臺:RK3588
系統版本:OpenHarmony 3.1 Release
開發語言:C、 C++

四步帶你體驗OpenHarmony標準系統開機時長優化

一、調整硬件資源使用率
調整硬件資源相應配置參數使之盡可能地達到最優運行狀態,這里所指的硬件資源是指 RAM、FLASH。

RAM:運存的調優需要根據廠商的指導文檔在設備樹文件<.dtsi文件>中進行調整,比如設定運存的時鐘頻率 memory-frequency、
設定內存帶寬 memory-bandwidth、內存時序 memory-timings 等,Kernel 層可以對 swappiness、dirty_ratio、dirty_background_ratio、min_free_kbytes等相應值進行調整,來達到運存的性能調優。

FLASH:比如對 physical_block_size 項進行調整,目前 OpenHarmony 采用的文件系統為 ext4,可以在熟悉ext4文件系統后,然后對其中緩存、模式、壓縮、清理等方向進行調優。減少KMSG與HiLog 日志輸出,調整其輸出等級。

二、Kernel 啟動時長優化
Kernel 啟動階段會進行硬件檢測、驅動加載、文件系統掛載、設置網絡等,其中耗時比較長的基本上為驅動加載,因為這中間會有重復嘗試跟 Sleep 的時間,需要重點關注,在 Kernel 啟動的過程中可以將一些無用的子系統進行裁剪,比如 bootchart。

三、系統框架啟動時長優化
在系統層啟動時,需要啟動很多服務,可以采用并行啟動系統必要服務,延遲啟動非必要服務,這些服務從加載到啟動完成、其中比較耗時的有 so 加載,可采用多線程的方式對其進行加載,下面貼出多線程加載多個 so 文件的 Demo 代碼;
#include 
#include
#include
#include
#include
void thread_func(void* handle){
// 空函數
}
int main(){
std::vector<std::string> lib_names = {"mpp1.so", "mpp2.so", "mpp3.so"};
std::vector<void*> handles;
for (const auto& lib_name : lib_names) {
void* handle = dlopen(lib_name.c_str(), RTLD_LAZY);
if (handle == nullptr) {
std::cerr << "Error loading library " << lib_name << ": " << dlerror() << std::endl;
return 1;
}
handles.push_back(handle);
}
std::vector<std::thread> threads;
for (const auto& handle : handles) {
threads.emplace_back(thread_func, handle);
}
for (auto& thread : threads) {
thread.join();
}
for (const auto& handle : handles) {
dlclose(handle);
}
return 0;
}
如果發現加載的單個so文件過大時,可采用多線程分段加載此so 文件。

四、 開機動畫顯示優化
優化思路大致為進入 bootAnimation 的 main 函數后,將動畫圖片采用數組或者鏈表的方式進行預加載,開啟每秒60幀的刷新率,此處為什么要開60幀,因為如果設定為30幀時,出現掉幀的情況后,會出現肉眼可見的卡頓。當圖片播放完成后,延遲幾百毫秒左右再進入桌面,因為Launcher 加載已安裝的 app ,需要一定的時間。下面是開機動畫優化的部分內容 :
1.提高開機動畫、渲染進程優先級;
"services" : [{
"name" : "render_service",
"path" : ["/system/bin/render_service"],
"uid" : "root",
"importance" : -20,
"gid" : ["system", "shell", "uhid", "root"]
}, {
"name" : "bootanimation",
"path" : ["/system/bin/bootanimation"],
"once" : 1,
"importance" : -20,
"uid" : "root",
"gid" : ["system", "shell", "uhid", "root"]
}
]
2. 提前加載開機動畫圖片;
ReadZipFile(BOOT_PIC_ZIP, imageVector_, jsonConfig);
imgVecSize_ = static_cast<int32_t>(imageVector_.size());
if (imgVecSize_ <= 0) {
PostTask(std::bind(&AppExecFwk::Stop, runner_));
LOGE("zip pic num is 0.");
return;
}


SortZipFile(imageVector_);
3.指定開機動畫顯示幀率;
OHOS::FrameCallback fcb = {
.userData_ = this,
.callback_ = std::bind(&BootAnimation::onVsync, this),
};
int32_t changefreq = static_cast<int32_t>((1000.0 / freq_) / 16);
ret=receiver_->SetVSyncRate(fcb,changefreq);
開機優化需要借助一些工具來分析比如串口工具、bootchart 生成的可視化圖表來進行分析。
OpenHarmony 標準系統默認集成了bootchart,下面介紹如何使用bootchart 工具來獲取開機性能數據及生成性能圖片:
(1)開機完成后,運行 hdc_std shell
(2)運行 begetctl bootchart enable
(3)運行 reboot 或者斷電重啟
(4)運行 begetctl bootchart stop
(5)運行 begetctl bootchart disable
(6)進入到/data/bootchart/文件夾下查看是否有
(7)header、proc_diskstats.log、proc_ps.log、proc_stat.log
(8)在/data/bootchart/目錄下執行命令:tar -czf bootchart.tgz *
(9)將bootchart.tgz 導出到本地磁盤上
(10)hdc_std file recv /data/bootchart/bootchart.tgz ./
(11)生成開機性能圖片 java -jar bootchart.jar bootchart.tgz
上面的bootchart.jar 需要下載源碼去編譯生成或者下載他人已經編譯好的jar包。源碼下載地址 https://sourceforge.net/projects/bootchart/ 。

下圖為 bootchart 生成的 OpenHarmony性能可視化視圖


總結

通過本篇文章介紹,您對OpenHarmony標準系統下性能優化的功能應該有了初步的了解。如果您對本篇文章內容感興趣,可以根據本篇文章介紹進行研究和使用。同時也歡迎更多開發者與我們共享開發成果,分享技術解讀與經驗心得。


原文標題:OpenHarmony標準系統開機時長優化

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

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

    關注

    60

    文章

    2963

    瀏覽量

    45904
  • OpenHarmony
    +關注

    關注

    33

    文章

    3952

    瀏覽量

    21102

原文標題:OpenHarmony標準系統開機時長優化

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【原創】OpenHarmony系統投屏工具軟件 - OpenHarmony_OHScrcpy使用推薦

    OpenHarmony_OHScrcpy - OpenHarmony投屏工具軟件 OpenHarmony_OHScrcpy是一款為OpenHarmony
    發表于 01-22 18:34

    #OpenHarmony HDC調試

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:46:28

    #OpenHarmony 鏡像燒錄

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:42:36

    #OpenHarmony 系統概述

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:39:20

    #OpenHarmony Hello World應用以及部署

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:32:52

    Linux系統冗余設計裁剪開機時優化

    1、在保留現有功能(RT-Linux實時特性、SPI驅動正常工作、網口通信正常、USB驅動)的前提下,將Upboard開發板的Linux系統開機時間從當前~60秒優化至≤20秒(上電啟動至系統
    發表于 12-16 22:17

    電能質量在線監測裝置的暫態波形存儲時長可以通過哪些方式進行優化

    電能質量在線監測裝置的暫態波形存儲時長優化需結合硬件升級、數據壓縮、存儲策略調整及架構創新等多維度技術手段。以下是基于行業實踐與前沿技術的系統性方案: 一、硬件存儲與架構優化 工業級存
    的頭像 發表于 11-05 14:45 ?260次閱讀

    如何延長電能質量在線監測裝置的暫態波形存儲時長

    延長電能質量在線監測裝置的暫態波形存儲時長需從硬件擴容、數據壓縮、策略優化、架構升級等多維度綜合施策。以下是結合行業實踐與技術標準的具體方案: 一、硬件升級:突破物理存儲瓶頸 內置存儲擴容 選擇支持
    的頭像 發表于 11-05 14:26 ?348次閱讀

    TFT液晶屏開機時開機閃屏的原因和解決方法

    \"開機閃屏\"是在TFT液晶屏應用中經常會碰到的一種現象,其背后涉及的是電源、信號和初始化時序的配合問題。 這并不是硬件故障,而是一個系統時序設計問題。 下面我們詳細解析下原因
    發表于 10-18 11:49

    用艾德克斯IT6500C/D系列測試電源開機時間和上升時間

    AC-DC、DC-DC電源模塊的完整測試往往包括開機時間、關機時間、上升時間、下降時間的測試。測試系統,如艾德克斯ITS9500電源測試系統可以完整高效的進行測試。如果不使用測試
    的頭像 發表于 09-16 17:19 ?981次閱讀
    用艾德克斯IT6500C/D系列測試電源<b class='flag-5'>開機時</b>間和上升時間

    請問各位dayu200是不是不支持燒錄64位的OpenHarmony

    我自己編譯了OpenHarmony5.0.2的鏡像,發現如果使用arm64參數編譯為64位版本,燒錄后卡在開機動畫無法開機,如果編譯為32位就可以正常。請問dayu200不支持64位系統
    發表于 08-16 17:39

    【重要通知】OpenHarmony主干平臺開發板選型提報倒計時(參考工具發布)

    各位伙伴好: 鑒于當前開源鴻蒙標準系統的主線驗證平臺(RK3568)在性能上已難以滿足未來幾年的發展需求。為確保系統持續演進,現啟動下一代主力驗證平臺的規劃工作。 經過初步調研,我們篩選出四個候選
    發表于 07-24 09:17

    硬件設備的開機密鑰:電路設計深度解析

    開機電路設計如同為硬件設備編寫了一串“開機密鑰”,它通過復雜的信號傳遞與邏輯判斷,確保系統從斷電狀態到正常工作模式的平穩過渡。這一設計的精妙程度,直接定義了設備的啟動效率與可靠性。 本文應工程師朋友
    的頭像 發表于 06-23 16:08 ?796次閱讀
    硬件設備的<b class='flag-5'>開機</b>密鑰:電路設計深度解析

    一文帶你了解KaihongOS標準系統的技術架構、子系統系統應用、典型特性以及支持的設備類型

    分布式軟總線子系統 2.10.1 子系統概述 KaihongOS標準系統軟件是基于OpenHarmony開發的新時代萬物互聯的操作系統
    發表于 04-23 07:17

    OpenHarmony5.0系統怎么去除鎖屏直接進入界面?教你2步搞定

    本文介紹在OpenHarmony5.0Release操作系統下,去除鎖屏開機后直接進入界面的方法。觸覺智能PurplePiOH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,1TOPS算力NPU
    的頭像 發表于 03-12 18:51 ?1152次閱讀
    <b class='flag-5'>OpenHarmony</b>5.0<b class='flag-5'>系統</b>怎么去除鎖屏直接進入界面?教你2步搞定