We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
背景: 流媒体转发服务,除了线程模型的架构外,内存拷贝次数和系统调用次数对性能影响比较大。 合并发送是指,多个小包数据合并为一块数据块调用系统调用write进行发送。 显然,合并发送可以减少系统调用write的调用次数。但是会增加内存拷贝。 并且由于主动降低了数据发送的及时性,可能会造成卡顿。
现状: 目前lal中的流会话session都使用naza库中connection作为连接对象的封装。 connection在创建时支持是否增加一层发送缓存实现合并发送(基于Go标准库的bufio.Writer)。 但是以connection为粒度做合并发送有一个问题,就是1对n转发时,可能会发生n次拷贝。 所以,我们需要一个基于group(也即刚才所说的n)的合并发送缓存。 另外,bufio.Writer在内存管理,缓存策略方面,也不一定完美贴合我们的需求,可能需要再实现一个类似的buffer writer。
行动项:
The text was updated successfully, but these errors were encountered:
#84 [feat] 合并发送
229b559
lalserver中的rtmp sub session已支持合并发送。
Sorry, something went wrong.
messages:
a41dc6d
1. #86 [fix] gop缓存设置为0时,可能花屏 2. #84 [fix] rtmp merge write开启时,可能给新加入的sub session发送错误的数据
No branches or pull requests
背景:
流媒体转发服务,除了线程模型的架构外,内存拷贝次数和系统调用次数对性能影响比较大。
合并发送是指,多个小包数据合并为一块数据块调用系统调用write进行发送。
显然,合并发送可以减少系统调用write的调用次数。但是会增加内存拷贝。
并且由于主动降低了数据发送的及时性,可能会造成卡顿。
现状:
目前lal中的流会话session都使用naza库中connection作为连接对象的封装。
connection在创建时支持是否增加一层发送缓存实现合并发送(基于Go标准库的bufio.Writer)。
但是以connection为粒度做合并发送有一个问题,就是1对n转发时,可能会发生n次拷贝。
所以,我们需要一个基于group(也即刚才所说的n)的合并发送缓存。
另外,bufio.Writer在内存管理,缓存策略方面,也不一定完美贴合我们的需求,可能需要再实现一个类似的buffer writer。
行动项:
The text was updated successfully, but these errors were encountered: