gpt4 book ai didi

c++ - STXXL 的高内存使用率

转载 作者:搜寻专家 更新时间:2023-10-31 00:37:05 25 4
gpt4 key购买 nike

我正在开发一个使用 STXXL 的项目,据我所知,它是 C++ STL 库的非核心版本。目前,我的程序运行良好,但我现在面临的问题是,当程序运行时,它使用接近 2GB 的内存(具有中小型数据集)。

在我的程序中,我使用了 25 个 STXXL vector ,存储在磁盘上的单独文件中。至于我的 .stxxl 文件,我目前将其设置为动态分配磁盘文件(通过将磁盘大小设置为 0)。

所以,我的问题是:有没有办法明确让 STXXL 使用硬盘而不是 RAM?还是在使用该库时会出现这种内存使用量?

提前感谢任何人可以提供的任何建议。

最佳答案

bobb_the_builder 关于 stxxl:vector 的 RAM 使用情况的说法是正确的。

请看下面的代码:

#include <stxxl/vector>

int main()
{
// create vector
//stxxl::VECTOR_GENERATOR<int>::result vector[25];
stxxl::VECTOR_GENERATOR<int, 1, 1, 1*1024*1024>::result vector[25];

// fill vectors with integers
for (size_t i = 0; i < 100 * 1024 * 1024 * 1024llu; ++i) {
vector[i % 25].push_back(i);
}

return 0;
}

在 Linux 上,程序的常驻内存大小增长到使用和时为 27528 KiB使用时大约为 1.6 GiB。

Windows 管理器显示相同吗?这可能是 Windows 上的 STXXL 错误,还是任务管理器显示不同的内存大小?

关于c++ - STXXL 的高内存使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475351/

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