矩阵在本征中的最大大小是多少
What is the maximum size of matrix in Eigen?
本文关键字:多少 更新时间:2023-10-16
在我的情况下(64位ubuntu,16GB内存,使用Eigen3),我写MatrixXd m(m,m);其中M=100000,在运行时,程序崩溃,并报告:
what():std::bad_alloc
中止(堆芯转储)
使用动态2调阵列,程序运行良好。Eigen中(稠密)矩阵的大小是否存在硬极限?
您正试图分配每个8字节的100000*100000
元素,即80000000000字节(74.5GB),但由于您只有16GB的内存,因此失败了。这会导致内存分配失败,因为它找不到那么大的连续内存块。
Eigen中没有固定的限制,但数组确实需要在系统上可分配。
MatrixXd使用双
100000×100000=10000000000个元素。
在您的系统中,sizeof(double)可能是8。
这意味着,为了创建这个矩阵,你需要:
width*height*sizeof(double)=>100000*100000*8/(1024*1024*1024)=>74.5 GB内存。
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- while循环中while循环的时间复杂度是多少
- 如何检查一个c++字符串中有多少相同的字符/数字
- C++有多少类型的循环
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 在条件变量中触发错误信号的频率是多少
- 函数的时间复杂度是多少?
- 必须为 C++20 协程帧保留多少内存?
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- C++,数组有多少个地址?
- 在C++中使用并行化的预期速度是多少(不是 OpenMp,而是 <thread>)
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 在内存不足之前,我可以声明多少个 const 变量?
- 可以读入进程内存的最大块大小是多少?
- 如何在不知道C++中有多少可选参数的情况下在循环中使用va_arg?
- 在二维向量或数组中可以存储的最大元素数是多少?
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- C++中 std::map 的运行时复杂度是多少?