如何准确计算Armadillo稀疏矩阵的实际内存占用字节大小
Armadillo稀疏矩阵内存占用评估说明
评估Armadillo稀疏矩阵的内存占用大小时,可参考稠密矩阵内存占用的相关计算逻辑。
参考示例代码如下:
void some_function(unsigned int matrix_size) { arma::sp_mat x(matrix_size, matrix_size); // 此处为填入非零值的逻辑 std::cout << sizeof(x) << std::endl; }
和稠密矩阵场景一致,sizeof无法返回矩阵本身的实际大小,仅会返回指针或其他小型对象的大小。
稀疏矩阵的大小不能简单通过非零元素数量乘以数据类型大小计算:Armadillo采用压缩格式存储稀疏矩阵,除了单元值之外,还需要额外的向量或数组存储单元索引,同时矩阵对象本身也包含存储元信息的头部,三部分内存总和才是稀疏矩阵的实际占用大小。
内容的提问来源于stack exchange,提问作者user
相关产品推荐
相关产品推荐

