【问题标题】:sparse matrix in EIGEN Ram consuptionEIGEN Ram 消耗中的稀疏矩阵
【发布时间】:2013-10-31 16:50:03
【问题描述】:

首先我填充了 spase 矩阵:

  SparseMatrix<double> matA; 

,我的计数为 600*10 000 大约需要 48 MB 和 int 24 MB 中的 + 索引 = 72 MB 那么为什么它在 Android 设备中要大 2 倍?或者问题出在哪里?

例如:A*A' ..这个过程的结果产品在这种情况下需要同样大 2 倍的 ram consuption...

【问题讨论】:

  • 请校对您的问题。这很难理解。另外,请给出行数、列数和非零数(matA.nonZeros())。
  • rows=524 000 ,cols=600, non zeros=10 000 在每列中;

标签: c++ ram eigen


【解决方案1】:

您的估计似乎是正确的,但是如果您使用 insert() 函数插入元素,那么您必须调用 .compress() 来释放自动预分配的内存。为每列正确保留空间应该可以防止分配额外的内存:A.reserve(VectorXi::Constant(600,10000));

【讨论】:

  • insertBack 我使用和 finalize();但是现在出现了问题,但是在填充矩阵之后,矩阵的大小更大了,但可能取决于 android ram 服务。或者我不知道,存在方法如何找出这个矩阵的实际大小?
  • 你确定它只是这个矩阵对象的大小还是存在任何其他数组/对象?
  • matA 在我的代码中只有一个,但如果它在本机层中的其他应用程序或 android 中---我不知道
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
相关资源
最近更新 更多