chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開機(jī)時長優(yōu)化

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

掃碼添加小助手

加入工程師交流群

點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們


開源項目 OpenHarmony
是每個人的 OpenHarmony

戴學(xué)躍

深圳市優(yōu)博終端科技有限公司

OpenHarmony知識體系工作組

簡介

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

效果展示

下面給出系統(tǒng)開機(jī)時長優(yōu)化前后的對比效果視頻,優(yōu)化前的開機(jī)時長在18秒左右,優(yōu)化后的開機(jī)時間在7秒左右。



開發(fā)環(huán)境

硬件平臺:RK3588
系統(tǒng)版本:OpenHarmony 3.1 Release
開發(fā)語言:C、 C++

四步帶你體驗OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開機(jī)時長優(yōu)化

一、調(diào)整硬件資源使用率
調(diào)整硬件資源相應(yīng)配置參數(shù)使之盡可能地達(dá)到最優(yōu)運(yùn)行狀態(tài),這里所指的硬件資源是指 RAM、FLASH。

RAM:運(yùn)存的調(diào)優(yōu)需要根據(jù)廠商的指導(dǎo)文檔在設(shè)備樹文件<.dtsi文件>中進(jìn)行調(diào)整,比如設(shè)定運(yùn)存的時鐘頻率 memory-frequency、
設(shè)定內(nèi)存帶寬 memory-bandwidth、內(nèi)存時序 memory-timings 等,Kernel 層可以對 swappiness、dirty_ratio、dirty_background_ratio、min_free_kbytes等相應(yīng)值進(jìn)行調(diào)整,來達(dá)到運(yùn)存的性能調(diào)優(yōu)。

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

二、Kernel 啟動時長優(yōu)化
Kernel 啟動階段會進(jìn)行硬件檢測、驅(qū)動加載、文件系統(tǒng)掛載、設(shè)置網(wǎng)絡(luò)等,其中耗時比較長的基本上為驅(qū)動加載,因為這中間會有重復(fù)嘗試跟 Sleep 的時間,需要重點(diǎn)關(guān)注,在 Kernel 啟動的過程中可以將一些無用的子系統(tǒng)進(jìn)行裁剪,比如 bootchart。

三、系統(tǒng)框架啟動時長優(yōu)化
在系統(tǒng)層啟動時,需要啟動很多服務(wù),可以采用并行啟動系統(tǒng)必要服務(wù),延遲啟動非必要服務(wù),這些服務(wù)從加載到啟動完成、其中比較耗時的有 so 加載,可采用多線程的方式對其進(jìn)行加載,下面貼出多線程加載多個 so 文件的 Demo 代碼;
#include 
#include
#include
#include
#include
void thread_func(void* handle){
// 空函數(shù)
}
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;
}
如果發(fā)現(xiàn)加載的單個so文件過大時,可采用多線程分段加載此so 文件。

四、 開機(jī)動畫顯示優(yōu)化
優(yōu)化思路大致為進(jìn)入 bootAnimation 的 main 函數(shù)后,將動畫圖片采用數(shù)組或者鏈表的方式進(jìn)行預(yù)加載,開啟每秒60幀的刷新率,此處為什么要開60幀,因為如果設(shè)定為30幀時,出現(xiàn)掉幀的情況后,會出現(xiàn)肉眼可見的卡頓。當(dāng)圖片播放完成后,延遲幾百毫秒左右再進(jìn)入桌面,因為Launcher 加載已安裝的 app ,需要一定的時間。下面是開機(jī)動畫優(yōu)化的部分內(nèi)容 :
1.提高開機(jī)動畫、渲染進(jìn)程優(yōu)先級;
"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. 提前加載開機(jī)動畫圖片;
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.指定開機(jī)動畫顯示幀率;
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);
開機(jī)優(yōu)化需要借助一些工具來分析比如串口工具、bootchart 生成的可視化圖表來進(jìn)行分析。
OpenHarmony 標(biāo)準(zhǔn)系統(tǒng)默認(rèn)集成了bootchart,下面介紹如何使用bootchart 工具來獲取開機(jī)性能數(shù)據(jù)及生成性能圖片:
(1)開機(jī)完成后,運(yùn)行 hdc_std shell
(2)運(yùn)行 begetctl bootchart enable
(3)運(yùn)行 reboot 或者斷電重啟
(4)運(yùn)行 begetctl bootchart stop
(5)運(yùn)行 begetctl bootchart disable
(6)進(jìn)入到/data/bootchart/文件夾下查看是否有
(7)header、proc_diskstats.log、proc_ps.log、proc_stat.log
(8)在/data/bootchart/目錄下執(zhí)行命令:tar -czf bootchart.tgz *
(9)將bootchart.tgz 導(dǎo)出到本地磁盤上
(10)hdc_std file recv /data/bootchart/bootchart.tgz ./
(11)生成開機(jī)性能圖片 java -jar bootchart.jar bootchart.tgz
上面的bootchart.jar 需要下載源碼去編譯生成或者下載他人已經(jīng)編譯好的jar包。源碼下載地址 https://sourceforge.net/projects/bootchart/ 。

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


總結(jié)

通過本篇文章介紹,您對OpenHarmony標(biāo)準(zhǔn)系統(tǒng)下性能優(yōu)化的功能應(yīng)該有了初步的了解。如果您對本篇文章內(nèi)容感興趣,可以根據(jù)本篇文章介紹進(jìn)行研究和使用。同時也歡迎更多開發(fā)者與我們共享開發(fā)成果,分享技術(shù)解讀與經(jīng)驗心得。


原文標(biāo)題:OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開機(jī)時長優(yōu)化

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2862

    瀏覽量

    45365
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3927

    瀏覽量

    20725

原文標(biāo)題:OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開機(jī)時長優(yōu)化

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)波形存儲時長可以通過哪些方式進(jìn)行優(yōu)化?

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)波形存儲時長優(yōu)化需結(jié)合硬件升級、數(shù)據(jù)壓縮、存儲策略調(diào)整及架構(gòu)創(chuàng)新等多維度技術(shù)手段。以下是基于行業(yè)實踐與前沿技術(shù)的系統(tǒng)性方案: 一、硬件存儲與架構(gòu)優(yōu)化 工業(yè)級存
    的頭像 發(fā)表于 11-05 14:45 ?137次閱讀

    如何延長電能質(zhì)量在線監(jiān)測裝置的暫態(tài)波形存儲時長?

    延長電能質(zhì)量在線監(jiān)測裝置的暫態(tài)波形存儲時長需從硬件擴(kuò)容、數(shù)據(jù)壓縮、策略優(yōu)化、架構(gòu)升級等多維度綜合施策。以下是結(jié)合行業(yè)實踐與技術(shù)標(biāo)準(zhǔn)的具體方案: 一、硬件升級:突破物理存儲瓶頸 內(nèi)置存儲擴(kuò)容 選擇支持
    的頭像 發(fā)表于 11-05 14:26 ?187次閱讀

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

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

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

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

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

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

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

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

    硬件設(shè)備的開機(jī)密鑰:電路設(shè)計深度解析

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

    一文帶你了解KaihongOS標(biāo)準(zhǔn)系統(tǒng)的技術(shù)架構(gòu)、子系統(tǒng)系統(tǒng)應(yīng)用、典型特性以及支持的設(shè)備類型

    分布式軟總線子系統(tǒng) 2.10.1 子系統(tǒng)概述 KaihongOS標(biāo)準(zhǔn)系統(tǒng)軟件是基于OpenHarmony開發(fā)的新時代萬物互聯(lián)的操作系統(tǒng)
    發(fā)表于 04-23 07:17

    OpenHarmony5.0系統(tǒng)怎么去除鎖屏直接進(jìn)入界面?教你2步搞定

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

    DLPC350插上電源后風(fēng)扇在轉(zhuǎn),但是沒有開機(jī)時投出的圖片,usb連接電腦后也一直連接不上,為什么?

    DLPC350插上電源后風(fēng)扇在轉(zhuǎn),但是沒有開機(jī)時投出的圖片,usb連接電腦后也一直連接不上
    發(fā)表于 02-27 06:39

    dlpc3433怎樣修改固件會將開機(jī)時顯示的為無啟動畫面且為外部輸入模式呢?

    怎樣修改固件會將開機(jī)時顯示的為無啟動畫面且為外部輸入模式呢?或者說有什么工具可以修改呢?
    發(fā)表于 02-27 06:08

    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)類庫案例:ThreadPoll

    1、程序簡介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)類庫的線程池處理:ThreadPoll。本案例完成如下工作:創(chuàng)建1個線程池,設(shè)置該線程池內(nèi)部有1024個線程空間。啟動5個線程
    的頭像 發(fā)表于 02-10 18:09 ?603次閱讀
    基于<b class='flag-5'>OpenHarmony</b><b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b>的C++公共基礎(chǔ)類庫案例:ThreadPoll

    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)類庫案例:Semaphore

    1、程序簡介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)類庫的線程處理:Sempahore。本案例完成如下工作:(1)無名信號量使用方法定義1個無名信號量,1個供無名信號量管理
    的頭像 發(fā)表于 02-10 18:08 ?636次閱讀
    基于<b class='flag-5'>OpenHarmony</b><b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b>的C++公共基礎(chǔ)類庫案例:Semaphore

    技術(shù)分享!蜂窩模組開機(jī)電路設(shè)計

    模組的上電開機(jī),是硬件設(shè)計調(diào)試的第一步。在前期設(shè)計階段,尤其要注意優(yōu)化外部電路設(shè)計(特別是電源部分)。 本文特別分享常見開機(jī)電路設(shè)計相關(guān)注意事項。適合大多數(shù)蜂窩模組,在實際開發(fā)中可靈活應(yīng)用。 一
    的頭像 發(fā)表于 12-17 18:05 ?1487次閱讀
    技術(shù)分享!蜂窩模組<b class='flag-5'>開機(jī)</b>電路設(shè)計

    【新品體驗】貝啟科技BQ3568HM開源鴻蒙開發(fā)板免費(fèi)試用

    貝啟科技BQ3568開源鴻蒙開發(fā)板是一款功能全面的開發(fā)板,搭載了RK3568鴻蒙系統(tǒng)主板和OpenHarmony標(biāo)準(zhǔn)系統(tǒng),具備高性能處理器(Quad-core ARM Cortex-A55,主頻高達(dá)
    發(fā)表于 12-12 17:13