qicosmos/rest_rpc

unpack内存优化

chisheng opened this issue · 1 comments

祁工:
嵌入式设备内存不大,所以特别关注内存消耗,还是以自带person为例,如果name的大小是10M,那么在服务端调用处理函数的时候,会瞬时消耗40M内存,原因是unpack调用msgpack::unpack时使用的默认参数,object_handle对str类型数据是复制不是引用,我看现在的流程,buffer的生命周期是大于object_handle的,能不能使用下边的接口,让unpack_reference_func固定返回true,强制使用引用模式,这样消耗的内存就是20M了。我测试了下,没有发现问题。

void unpack(
object_handle& result,
const char* data,
std::size_t len,
unpack_reference_func f = nullptr,
void* user_data = nullptr,
unpack_limit const& limit = unpack_limit());

可以增加一个这样的接口,你提个pr如何?