C++一次性加载文件数据到内存中
发布时间
阅读量:
阅读量
问题: 早期开发了一个用于目标检测的SDK,其中包含从bin文件加载模型以及从内存中加载模型的两个功能接口。后续在处理级联检测任务时,涉及多个bin模型文件的使用,当需要将这些独立的bin文件整合为一个统一文件时,发现原有的加载接口已无法满足需求,必须进行调整。
解决:
为避免对现有接口进行修改,采取了以下应对策略:
(1) 对多个bin文件实施拼接操作,并同步记录每个单独文件的数据容量。
最终生成的合并文件结构如下:模型总数+模型A容量+…+模型X容量+模型A参数内容…
(2) 通过特定方式将上述整合后的文件一次性读取至内存中
/**************** 将模型整个读入内存 ********************/
std::ifstream infile(detModFile,std::ios::binary);
if (!infile.is_open())
{
printf( "connot open the model file: %s\n",detModFile);
return -1;
}
std::filebuf *pbuf = infile.rdbuf();
// 获取文件大小
long
全部评论 (0)
还没有任何评论哟~
