当前位置:网站首页>Practice of RTC performance automation tool in memory optimization scenario
Practice of RTC performance automation tool in memory optimization scenario
2022-07-25 18:18:00 【InfoQ】
Background introduction
- Which modules consume how much memory ?
- How to optimize ?
The memory of
- Java Heap,from Java Code assigned objects ; During the call Java Memory distribution curve , It mainly presents jagged periodic changes . combination VolcRTC Business characteristics , You can know that this part of memory is mainly JNI Allocate temporary objects when calling , After accumulating to a certain extent, the system GC Mechanism recycling .

- Native Heap,from C or C++ Code assigned objects . This part is VolcRTC Main memory occupation .

- Code,For processing code and resources ( Such as dex Bytecode 、 Optimized or compiled dex Code 、.so Library and Fonts ) Of memory .VolcRTC Memory occupied by the Library , But it is not equal to the package size of the dynamic library , The main reason is that code segments are loaded on demand , So part of the code will not be loaded into memory .VolcRTC It's a dynamic library , therefore Code Memory is also a major part of the call process .

To optimize the direction
- Native Memory optimization
- Dynamic library enclosure optimization
Memory attribution analysis
- Memory allocation stack information
- Attribution by module
Heapprofd Realization principle
- hook malloc、calloc、realloc、free And other functions related to memory allocation
- Copy registers and stack memory , Stored in shared memory , For stack backtracking
- Cluster and generate according to stack information Trace file

Module attribution

__pthread_start(void*)
Problems encountered

Voice call memory analysis
Memory optimization
Compile optimization
Dynamic distribution on demand
- Reasonable code componentization , Abstract different functions into components to achieve flexible assembly and on-demand loading , Such as :AI The built-in data and models of noise reduction function will occupy a large memory space .
- Try to allocate memory dynamically on demand . Such as :AEC Echo cancellation has different algorithms in different scenes , You need to allocate memory as needed according to the actual scene , Reduce excessive memory pre allocation .
Set a reasonable cache size
Reasonable algorithm and data structure design
shortThe optimization effect
1v1 voice call
- Construct stable test cases
- Establish the data attribution model of performance impairment
- Identify hot performance issues based on attribution models , Form an optimization scheme
- from 1v1 Call start analysis , Then gradually to many people 、 Hundreds of people, thousands of people .
Join us
Reference documents :
边栏推荐
- Remember those two sentences
- Problems faced by cloud XR and main application scenarios of cloud XR
- C语言 libcurl交叉编译
- CH582 BLE 5.0 使用 LE Coded 广播和连接
- Recognized by international authorities! Oceanbase was selected into the Forrester translational data platform report
- Compilation of program
- Stm32f105rbt6 internal flash debugging
- Construction of Huffman tree
- srec_cat 常用参数的使用
- 这是一张机器&深度学习代码速查表
猜你喜欢

STM8S003F3 内部flash调试

What scenarios have rust, which is becoming more and more mature, applied?

工程师必看的示波器探头安全使用说明书

Related operations of binary tree

Cve-2022-33891 Apache spark shell command injection vulnerability recurrence

Could not stop Cortex-M device! please check the JTAG cable的解决办法

想要做好软件测试,可以先了解AST、SCA和渗透测试
![Why is the index in [mysql] database implemented by b+ tree? Is hash table / red black tree /b tree feasible?](/img/1f/a2d50ec6bc97d52c1e7566a42e564b.png)
Why is the index in [mysql] database implemented by b+ tree? Is hash table / red black tree /b tree feasible?

Imx6 rtl8189ftv migration

Oracle导入出错:IMP-00038: 无法转换为环境字符集句柄
随机推荐
How to judge the performance of static code quality analysis tools? These five factors must be considered
专访即构科技李凯:音视频的有趣、行业前沿一直吸引着我
Express of nodejs simple example program
「行话」| 用DevOps高效交付游戏,是种什么体验?
数二2010真题考点
ORB_ Slam3 recurrence - Part I
3DCAT v2.1.3新版本发布,这三大功能更新你不容错过!
Who is responsible for the problems of virtual idol endorsement products?
使用sqldeveloper连接mysql
JZ71 跳台阶扩展问题
[MySQL]数据库中的索引为什么是用B+树来实现? 哈希表/红黑树/B树是否可行呢?
Cve-2022-33891 Apache spark shell command injection vulnerability recurrence
BiSeNet v1
遍历数组的方法有哪些?for循环 forEach for/in for/of map的性能又有什么差别 该如何选择?
Imx6 rtl8189ftv migration
Detailed explanation of super full mavan label
Sorting also needs to know the information and linked list
Joseph Ring problem
乐观锁解析
Related operations of figure