mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-05 02:38:10 +08:00
优化循环池性能
This commit is contained in:
@@ -185,7 +185,7 @@ public:
|
||||
static onceToken token([]() {
|
||||
packet_pool.setSize(1024);
|
||||
});
|
||||
auto ret = packet_pool.obtain();
|
||||
auto ret = packet_pool.obtain2();
|
||||
ret->_buffer.clear();
|
||||
ret->_prefix_size = 0;
|
||||
ret->_dts = 0;
|
||||
|
||||
@@ -129,7 +129,7 @@ Buffer::Ptr HttpFileBody::readData(size_t size) {
|
||||
if(!_map_addr){
|
||||
//fread模式
|
||||
ssize_t iRead;
|
||||
auto ret = _pool.obtain();
|
||||
auto ret = _pool.obtain2();
|
||||
ret->setCapacity(size + 1);
|
||||
do{
|
||||
iRead = fread(ret->data(), 1, size, _fp.get());
|
||||
|
||||
@@ -180,7 +180,7 @@ Frame::Ptr MP4Demuxer::readFrame(bool &keyFrame, bool &eof) {
|
||||
ctx->flags = flags;
|
||||
ctx->track_id = track_id;
|
||||
|
||||
ctx->buffer = ctx->thiz->_buffer_pool.obtain();
|
||||
ctx->buffer = ctx->thiz->_buffer_pool.obtain2();
|
||||
ctx->buffer->setCapacity(bytes + DATA_OFFSET + 1);
|
||||
ctx->buffer->setSize(bytes + DATA_OFFSET);
|
||||
return ctx->buffer->data() + DATA_OFFSET;
|
||||
|
||||
@@ -99,7 +99,7 @@ void MpegMuxer::createContext() {
|
||||
/*alloc*/
|
||||
[](void *param, size_t bytes) {
|
||||
MpegMuxer *thiz = (MpegMuxer *) param;
|
||||
thiz->_current_buffer = thiz->_buffer_pool.obtain();;
|
||||
thiz->_current_buffer = thiz->_buffer_pool.obtain2();
|
||||
thiz->_current_buffer->setCapacity(bytes + 1);
|
||||
return (void *) thiz->_current_buffer->data();
|
||||
},
|
||||
|
||||
@@ -72,7 +72,7 @@ void FlvMuxer::start(const EventPoller::Ptr &poller, const RtmpMediaSource::Ptr
|
||||
}
|
||||
|
||||
BufferRaw::Ptr FlvMuxer::obtainBuffer() {
|
||||
return _packet_pool.obtain();
|
||||
return _packet_pool.obtain2();
|
||||
}
|
||||
|
||||
BufferRaw::Ptr FlvMuxer::obtainBuffer(const void *data, size_t len) {
|
||||
|
||||
@@ -138,7 +138,7 @@ RtmpPacket::Ptr RtmpPacket::create(){
|
||||
static onceToken token([]() {
|
||||
packet_pool.setSize(1024);
|
||||
});
|
||||
auto ret = packet_pool.obtain();
|
||||
auto ret = packet_pool.obtain2();
|
||||
ret->clear();
|
||||
return ret;
|
||||
#else
|
||||
|
||||
@@ -799,11 +799,11 @@ void RtmpProtocol::handle_chunk(RtmpPacket::Ptr packet) {
|
||||
}
|
||||
|
||||
BufferRaw::Ptr RtmpProtocol::obtainBuffer(const void *data, size_t len) {
|
||||
auto buffer = _packet_pool.obtain();
|
||||
auto buffer = _packet_pool.obtain2();
|
||||
if (data && len) {
|
||||
buffer->assign((const char *) data, len);
|
||||
}
|
||||
return std::move(buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
} /* namespace mediakit */
|
||||
|
||||
@@ -555,7 +555,7 @@ RtpPacket::Ptr RtpPacket::create() {
|
||||
static onceToken token([]() {
|
||||
packet_pool.setSize(1024);
|
||||
});
|
||||
auto ret = packet_pool.obtain();
|
||||
auto ret = packet_pool.obtain2();
|
||||
ret->setSize(0);
|
||||
return ret;
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user