Commit 97f7255f by xiongziliang

Performance: 使用循环池优化rtmp分发性能

parent 5404a526
...@@ -55,6 +55,7 @@ static string openssl_HMACsha256(const void *key, size_t key_len, const void *da ...@@ -55,6 +55,7 @@ static string openssl_HMACsha256(const void *key, size_t key_len, const void *da
namespace mediakit { namespace mediakit {
RtmpProtocol::RtmpProtocol() { RtmpProtocol::RtmpProtocol() {
_packet_pool.setSize(64);
_next_step_func = [this](const char *data, size_t len) { _next_step_func = [this](const char *data, size_t len) {
return handle_C0C1(data, len); return handle_C0C1(data, len);
}; };
...@@ -776,7 +777,7 @@ void RtmpProtocol::handle_chunk(RtmpPacket::Ptr packet) { ...@@ -776,7 +777,7 @@ void RtmpProtocol::handle_chunk(RtmpPacket::Ptr packet) {
} }
BufferRaw::Ptr RtmpProtocol::obtainBuffer(const void *data, size_t len) { BufferRaw::Ptr RtmpProtocol::obtainBuffer(const void *data, size_t len) {
auto buffer = BufferRaw::create(); auto buffer = _packet_pool.obtain();
if (data && len) { if (data && len) {
buffer->assign((const char *) data, len); buffer->assign((const char *) data, len);
} }
......
...@@ -107,6 +107,8 @@ private: ...@@ -107,6 +107,8 @@ private:
function<const char * (const char *data, size_t len)> _next_step_func; function<const char * (const char *data, size_t len)> _next_step_func;
////////////Chunk//////////// ////////////Chunk////////////
unordered_map<int, std::pair<RtmpPacket::Ptr/*now*/, RtmpPacket::Ptr/*last*/> > _map_chunk_data; unordered_map<int, std::pair<RtmpPacket::Ptr/*now*/, RtmpPacket::Ptr/*last*/> > _map_chunk_data;
//循环池
ResourcePool<BufferRaw> _packet_pool;
}; };
} /* namespace mediakit */ } /* namespace mediakit */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论