gpt4 book ai didi

c++ - mongodb内存泄漏通过C++驱动程序插入文档

转载 作者:行者123 更新时间:2023-11-28 07:29:34 25 4
gpt4 key购买 nike

我正在逐行循环处理一系列 CSV 文件。对于每一行,我创建一个 BSONObjBuilder 对象,然后将 builder.obj() 添加到 std::vector ...每 10k 行我将 vector 插入数据库,然后清除 vector

mdb.insert(collection, myvector);
myvector.clear()

每个 CSV 文件中有数百万行。我注意到 mongod 进程正在占用越来越多的内存....直到内存使用率最终达到 100%

PID   USER     PR  NT VIRT   RES  SHR S %CPU %MEM
4450 mongod 15 0 73.2g 34g 33g S 45.7 97.0 3848:30 mongod

这是怎么回事?在我看来好像有内存泄漏?我的代码中肯定没有内存泄漏。

最佳答案

当您调用clear 时,它会清除元素,但可能不会减少容量。
这已得到解答here

要么是老学校;要么

std::vector<T>(v).swap(v);

请注意,C++11 具有 shr​​ink_to_fit 这可能会有所帮助,但可能什么都不做。

关于c++ - mongodb内存泄漏通过C++驱动程序插入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17999112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com