gpt4 book ai didi

c++ - 用完 ram C++

转载 作者:行者123 更新时间:2023-12-03 13:58:57 24 4
gpt4 key购买 nike

我正在使用 4D 矩阵(使用 STL vector )。通常,维度是不同的。例如,我正在读取一个维度为 192x256x128x96 的矩阵,下面的代码以 0 到更大的维度(在这种情况下为 256)。

while(matriz.size() < width)   //width es el tamaño de N
{
vector<vector<vector<short>>> aux;
matriz.push_back(aux);
}

for(auto i = 0; i < matriz.size(); i++)
{
while(matriz[i].size() < width)
{
vector<vector<short>> aux;
matriz[i].push_back(aux);
}
}


for(auto i = 0; i < matriz.size(); i++)
for(auto j = 0; j < matriz[i].size(); j++)
while(matriz[i][j].size() < width)
{
vector<short> aux;
matriz[i][j].push_back(aux);
}



for(auto i = 0; i < matriz.size(); i++)
for(auto j = 0; j < matriz[i].size(); j++)
for(auto k = 0; k < matriz[i][j].size(); k++)
while(matriz[i][j][k].size() < width)
{
matriz[i][j][k].push_back(0);
}


该代码适用于中小型 4D 矩阵,我已经尝试过使用 200x200x200x200 并且它确实有效,但是我需要将它与 256x256x256x256 矩阵一起使用,当我运行它时,我的计算机没有响应。
不知道是不是内存问题。我的电脑有 12GB RAM,如果我没记错的话,矩阵的大小是 8GB。
知道如何解决这个问题吗?
编辑
如果我让程序运行,一段时间后它就会被杀死
The program is killed
200x200x200x200 矩阵的内存使用率为 56.7%
memory usage

最佳答案

让我们看看我是否有这个权利。
您正在生产:

  • 1 个 vector 包含:
  • 256 个 vector ,每个 vector 包含
  • 每个拥有 256 个 vector (总共 65,536 个)
  • 每个拥有 256 个 vector (总共 16,777,216 个)
  • 256 条短裤(总共 4,294,967,296 条,或如您所指的 8,589,934,592 字节)

  • 我不知道每个 vector 本身的整个大小,但可能远低于 1k,因此您使用的内存不到 10 g。
    然而,这有很多事情要做。它真的挂了,还是只需要很长很长时间。
    一些定期的调试输出将有助于回答这个问题。

    关于c++ - 用完 ram C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66144508/

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