2 files changed
+2
-1
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
156 | 156 |
| |
157 | 157 |
| |
158 | 158 |
| |
| 159 | + | |
159 | 160 |
| |
160 | 161 |
| |
161 | 162 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
| 27 | + | |
28 | 28 |
| |
29 | 29 |
|
2 commit comments
winlinvip commentedon Feb 28, 2021
RTC有非常多的RTP包,由于对于实时性要求很高,所以每个Player每个时刻能处理的包却并不能太多(也就是服务器不能做延迟批量处理包)。
而直播很不一样,直播服务器可以主动缓存几百毫秒甚至秒级别的数据,批量处理和发送,以获得更高的性能。
因此,RTC对于对象的缓存就很重要,不断的new和delete对象,会导致性能低下。
首先,我们要将RTP Packet的缓存区分配,改成对象自己管理:
然后,我们使用对象池分配内存和对象:
关于对象池的性能优化:
其他重要说明:
winlinvip commentedon May 14, 2021
Object Cache Pool,压测发现作用有限,已经从4.0的代码删除:f7b3225
代码保留在:feature/object_cache_pool
数据请看如下两个图对比:
开启Cache
关闭Cache