当前位置: 首页 > news >正文

OpenHarmony Trace的使用

背景:

近期很多开发者反馈OpenHarmony三方库Imageknife有性能问题:连续拖动很多张图片时,界面有明显的卡顿现象。

因为对这个三方库的源码并不了解,因此需要了解目前Imageknife渲染花费了多少时间,最初想的是只有通过hilog打印日志看执行时间,后来一搜发现DevEcoStudio中已经集成了Trace的功能,便于查看指定代码的内存,CPU,功耗等信息,特此记录下。国庆节后来计划来优化Imageknife。

Trace查看:

当前DevEcoStudio下面tab栏目有"Profile",据说下个版本改成了"Insight"。可以记录一段时间,并查看trace代码中的时间以及并行情况。

JS Trace方法:

import hiTraceMeter from '@ohos.hiTraceMeter';hiTraceMeter.startTrace("taskName", 1);
await sleep(3000);//待测试代码
hiTraceMeter.finishTrace("taskName", 1);

C++ Trace方法:

首先要在c++模块链接trace的库:在CmakeList中加入“target_link_libraries(entry PUBLIC libhitrace_ndk.z.so)”

OH_HiTrace_StartAsyncTrace("test",2);std::this_thread::sleep_for(std::chrono::seconds(1)); // 待测试代码OH_HiTrace_FinishAsyncTrace("test", 2);

后续:

ok , 现在已经知道如何在代码中加trace,并通过DevecoStudio中查看代码执行时间了。目前看Imakeknife的性能问题,主要在于大部分的图片请求和解码都是在UI进程中完成的,且是串行的。节后再看看,是否能把这块的操作通过taskpool或者native的线程方式,通过线程并发执行且不阻塞UI线程搞定。

http://www.lryc.cn/news/184647.html

相关文章:

  • 文件上传笔记
  • 计算机网络 第三章数据链路层
  • 浅析如何在抖音快速通过新手期并积累粉丝
  • 英文论文实例赏析——如何写前言?
  • springBoot -md
  • 从0开始学go第五天
  • 大厂技术面试中的手撕代码应该如何准备?
  • 阿里影业+大麦,开启大文娱新纪元?
  • springboot整合mybatis入门程序
  • 【BI看板】Superset2.0+图表二次开发初探
  • 微服务学习--1入门
  • docker系列6:docker安装redis
  • 计算机网络(三):数据链路层
  • 【计算机组成 课程笔记】7.2 DRAM和SRAM
  • 1802_在Linux系统上开发ARM单机片机嵌入式软件
  • 【计算机网络-自顶向下方法】应用层(HTTP、FTP)
  • CSS文本超出显示小数点
  • 怎么把图片压缩小一点?4个简单的压缩办法
  • react嵌套路由
  • 代码随想录 单调栈 Ⅰ
  • C++返回引用
  • 010:连续跌3天,同时这三天收盘价都在20日均线下,第四天上涨的概率--以京泉华为例
  • MATLAB与Python:优势与挑战
  • CSP-J第二轮试题-2019年-1、2题
  • 深入理解 python 虚拟机:原来虚拟机是这么实现闭包的
  • 【数据结构-哈希表 一】【原地哈希】:缺失的第一个正整数
  • 【C++设计模式之迭代器模式】分析及示例
  • 【代码随想录】LC 27. 移除元素
  • crash工具分析dma设备内存踩踏(一)
  • C#上位机——根据命令发送