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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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


開(kāi)源項(xiàng)目 OpenHarmony
是每個(gè)人的 OpenHarmony

戴學(xué)躍

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

OpenHarmony知識(shí)體系工作組

簡(jiǎn)介

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

效果展示

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



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

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

四步帶你體驗(yàn)OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開(kāi)機(jī)時(shí)長(zhǎng)優(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è)備樹(shù)文件<.dtsi文件>中進(jìn)行調(diào)整,比如設(shè)定運(yùn)存的時(shí)鐘頻率 memory-frequency、
設(shè)定內(nèi)存帶寬 memory-bandwidth、內(nèi)存時(shí)序 memory-timings 等,Kernel 層可以對(duì) swappiness、dirty_ratio、dirty_background_ratio、min_free_kbytes等相應(yīng)值進(jìn)行調(diào)整,來(lái)達(dá)到運(yùn)存的性能調(diào)優(yōu)。

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

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

三、系統(tǒng)框架啟動(dòng)時(shí)長(zhǎng)優(yōu)化
在系統(tǒng)層啟動(dòng)時(shí),需要啟動(dòng)很多服務(wù),可以采用并行啟動(dòng)系統(tǒng)必要服務(wù),延遲啟動(dòng)非必要服務(wù),這些服務(wù)從加載到啟動(dòng)完成、其中比較耗時(shí)的有 so 加載,可采用多線程的方式對(duì)其進(jìn)行加載,下面貼出多線程加載多個(gè) 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)加載的單個(gè)so文件過(guò)大時(shí),可采用多線程分段加載此so 文件。

四、 開(kāi)機(jī)動(dòng)畫(huà)顯示優(yōu)化
優(yōu)化思路大致為進(jìn)入 bootAnimation 的 main 函數(shù)后,將動(dòng)畫(huà)圖片采用數(shù)組或者鏈表的方式進(jìn)行預(yù)加載,開(kāi)啟每秒60幀的刷新率,此處為什么要開(kāi)60幀,因?yàn)槿绻O(shè)定為30幀時(shí),出現(xiàn)掉幀的情況后,會(huì)出現(xiàn)肉眼可見(jiàn)的卡頓。當(dāng)圖片播放完成后,延遲幾百毫秒左右再進(jìn)入桌面,因?yàn)長(zhǎng)auncher 加載已安裝的 app ,需要一定的時(shí)間。下面是開(kāi)機(jī)動(dòng)畫(huà)優(yōu)化的部分內(nèi)容 :
1.提高開(kāi)機(jī)動(dòng)畫(huà)、渲染進(jìn)程優(yōu)先級(jí);
"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. 提前加載開(kāi)機(jī)動(dòng)畫(huà)圖片;
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.指定開(kāi)機(jī)動(dòng)畫(huà)顯示幀率;
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);
開(kāi)機(jī)優(yōu)化需要借助一些工具來(lái)分析比如串口工具、bootchart 生成的可視化圖表來(lái)進(jìn)行分析。
OpenHarmony 標(biāo)準(zhǔn)系統(tǒng)默認(rèn)集成了bootchart,下面介紹如何使用bootchart 工具來(lái)獲取開(kāi)機(jī)性能數(shù)據(jù)及生成性能圖片:
(1)開(kāi)機(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)生成開(kāi)機(jī)性能圖片 java -jar bootchart.jar bootchart.tgz
上面的bootchart.jar 需要下載源碼去編譯生成或者下載他人已經(jīng)編譯好的jar包。源碼下載地址 https://sourceforge.net/projects/bootchart/ 。

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


總結(jié)

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


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

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

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

    關(guān)注

    60

    文章

    2744

    瀏覽量

    45125
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3897

    瀏覽量

    20471

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    用艾德克斯IT6500C/D系列測(cè)試電源開(kāi)機(jī)時(shí)間和上升時(shí)間

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

    請(qǐng)問(wèn)各位dayu200是不是不支持燒錄64位的OpenHarmony

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

    【重要通知】OpenHarmony主干平臺(tái)開(kāi)發(fā)板選型提報(bào)倒計(jì)時(shí)(參考工具發(fā)布)

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

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

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

    一文帶你了解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開(kāi)發(fā)的新時(shí)代萬(wàn)物互聯(lián)的操作系統(tǒng)
    發(fā)表于 04-23 07:17

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

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

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

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

    dlpc3433怎樣修改固件會(huì)將開(kāi)機(jī)時(shí)顯示的為無(wú)啟動(dòng)畫(huà)面且為外部輸入模式呢?

    怎樣修改固件會(huì)將開(kāi)機(jī)時(shí)顯示的為無(wú)啟動(dòng)畫(huà)面且為外部輸入模式呢?或者說(shuō)有什么工具可以修改呢?
    發(fā)表于 02-27 06:08

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

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

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

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

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

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

    OpenHarmony默認(rèn)30秒熄屏太麻煩?觸覺(jué)智能鴻蒙開(kāi)發(fā)板教你輕松取消

    OpenHarmony系統(tǒng)開(kāi)機(jī)后 30 秒會(huì)自動(dòng)息屏,教大家兩招輕松取消自動(dòng)息屏,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,已適配全新OpenHarmony5.0 Release
    的頭像 發(fā)表于 12-09 11:45 ?1173次閱讀
    <b class='flag-5'>OpenHarmony</b>默認(rèn)30秒熄屏太麻煩?觸覺(jué)智能鴻蒙開(kāi)發(fā)板教你輕松取消

    基于LabVIEW做自動(dòng)校準(zhǔn)系統(tǒng)開(kāi)發(fā)的問(wèn)題

    因工作需要,繼續(xù)開(kāi)發(fā)一個(gè)電源自動(dòng)校準(zhǔn)系統(tǒng),因?yàn)槭切率郑瑢?duì)于設(shè)計(jì)什么樣的循環(huán)架構(gòu)適合這個(gè)應(yīng)用場(chǎng)景感覺(jué)很吃力,主工作順序是:任務(wù)A~任務(wù)B-任務(wù)C-任務(wù)D,然后每個(gè)任務(wù)節(jié)點(diǎn)都會(huì)執(zhí)行一組相同順序的操作:動(dòng)作1-動(dòng)作2-動(dòng)作3-動(dòng)作4,有沒(méi)有相關(guān)開(kāi)發(fā)經(jīng)驗(yàn)的大神解答一下,謝謝。
    發(fā)表于 11-23 15:43

    在主板上優(yōu)化PCIe通道設(shè)置

    )以及各個(gè)插槽的布局和規(guī)格。這些信息通??梢栽谥靼宓氖謨?cè)或官方網(wǎng)站上找到。 確定PCIe設(shè)備需求 :根據(jù)安裝的PCIe設(shè)備(如顯卡、固態(tài)硬盤等)的規(guī)格和需求,確定所需的PCIe通道數(shù)量和帶寬。 二、BIOS設(shè)置優(yōu)化 進(jìn)入BIOS界面 :在電腦開(kāi)機(jī)時(shí),按下指定的鍵(如Del
    的頭像 發(fā)表于 11-06 09:30 ?1.5w次閱讀