- 主题:两个BytesMut能够零拷贝合并吗
一个的头连在另一个的尾,形成一个bytesmut
--
FROM 221.218.141.*
extend_from_slice内部会执行memcpy,将新增的[u8]完全复制过来,花费时间和[u8]的长度有关,越久越慢
零拷贝就是不用值拷贝,只让它们从逻辑上变成一个整体,而不涉及到allocation,不用对数组进行copy
【 在 RunningOn 的大作中提到: 】
: 零拷贝什么意思?
: BytesMut有extend_from_slice方法
:
--
FROM 221.218.141.*
还是有点困惑
vec<t>,当t不可copy及clone时,也可以用extend扩展,这里面实现过程,会重新allocation吗?
或者再提炼一下问题,如何将两个vec<t>用最高效率合并为一个vec
【 在 RunningOn 的大作中提到: 】
: 那不行。
bytes, Bytes, BytesMut 都是一个连续的内存区域。
两个BytesMut, 一定是在两个不...
--
FROM 114.254.9.*
豁然开朗,大赞
【 在 RunningOn 的大作中提到: 】
: Bytes是连续内存区域,vec并不是呀。
vec,vec首先会有一块连续内存区域保存T数据的“指针”,T可能还有成员变...
--
FROM 114.254.9.*