服务器vector内存泄漏排查过程

        在开发过程中出现内存泄漏反复排查具体原因,终于定位到是因为vector操作不当引起内存泄漏,再次记录此次过程

struct FieldInfo {

    std::string value;

    std::vector<std::string> multi_value;

    bool valid_discrete_feature_ = false;

    FieldInfo() {

    }

    FieldInfo(std::string& single_value) : value(single_value) {

    }

};

std::vector<FieldInfo> ad_fields(FLAGS_max_feature_count); (FLAGS_max_feature_count = 1024)

vector主要就是保存上面的结构体,上面结构体相对简单,主要是给value赋值,代码如下:

ad_fields[FIELD_INDUSTRY_LEVEL1_ID].value = location_result.industry_level1_id;

(直接使用ad_fields位置 直接赋值给其内部结构体value)

ad_fields向量需要循环引用赋值(具体是业务需要对ad级别特征不断填充、覆盖)

每次对ad_fields填充前进行了clear()操作。

定位到内存泄漏在

ad_fields[FIELD_INDUSTRY_LEVEL1_ID].value = location_result.industry_level1_id;

字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值