gpt4 book ai didi

matlab - Julia 进程使用的内存

转载 作者:行者123 更新时间:2023-12-01 15:48:40 38 4
gpt4 key购买 nike

我正在从事一个关于稀疏线性系统分辨率的项目(使用 UMFPACK 库并测试所有 FEMLAB 矩阵),我必须检查此分辨率需要多少 RAM(对于每个矩阵)。

我必须用不同的编程语言测试 UMFPACK,所以我已经在 MATLAB 中编写了一些代码,我在其中找到了以下命令:

[user, sys] = memory,特别是 user.MemUsedMATLAB

现在我不得不用 Julia 编程语言编写相同的软件,但似乎很难找到一些类似的命令;我是 Julia 的新手,我刚刚尝试了命令 @time,但我无法将分配的内存字节数存储在变量中。这非常重要,因为最后我需要绘制一个图形,其中包含为每个矩阵分配的内存字节的值。

有人知道我的问题的解决方案吗?如何在变量中获取我的代码使用的 RAM? Julia 中是否有与 MemUsedMATLAB 等效的命令?

最佳答案

@time当您调用相关代码时,宏会显示分配了多少内存(总共)。这包括临时变量——一些 Matlab 不会告诉你的东西。您可以使用 @timed 访问这些值宏观;查看它对每个返回值的描述的帮助:

julia> @timed rand(100000)'*rand(100000)
(25069.751546076346, 0.002270112, 1600336, 0.0, Base.GC_Diff(1600336, 2, 0, 7, 0, 0, 0, 0, 0))

help?> @timed
@timed

A macro to execute an expression, and return the value of the expression,
elapsed time, total bytes allocated, garbage collection time, and an object
with various memory allocation counters.

但这不是静止的内存。它是在表达式计算期间分配的内存总量。如果有很多临时内存,这可能会大大高于系统的可用内存。

您还可以使用 Base.summarysize函数来估计单个对象的大小,但那里的计算是近似值。

关于matlab - Julia 进程使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326823/

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