Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 查找内存中单个对象的大小_Julia - Fatal编程技术网

Julia 查找内存中单个对象的大小

Julia 查找内存中单个对象的大小,julia,Julia,我知道varinfo()函数将给出内存中所有对象的大小。这可能会非常慢地执行,有时会在某些对象上失败,使整个函数挂起。是否有一种方法可以获得特定对象在内存中的大小,类似于Python中的sys.getsizeof()函数?varinfo()接受匹配对象名称,因此可以使用 x = rand(100, 100) varinfo(r"x") 获取有关x的信息。对于以字节为单位的大小,请使用 Base.summarysize(x) 编辑: 最初,该答案建议使用whos(),但由于@Plankalkü

我知道
varinfo()
函数将给出内存中所有对象的大小。这可能会非常慢地执行,有时会在某些对象上失败,使整个函数挂起。是否有一种方法可以获得特定对象在内存中的大小,类似于Python中的
sys.getsizeof()
函数?

varinfo()
接受匹配对象名称,因此可以使用

x = rand(100, 100)
varinfo(r"x")
获取有关
x
的信息。对于以字节为单位的大小,请使用

Base.summarysize(x)
编辑:
最初,该答案建议使用
whos()
,但由于@Plankalkül提到
whos()
已重命名为
varinfo()
,因此相应地更新了答案

您可以使用
sizeof
功能:

help?>sizeof
搜索:sizeof
sizeof(s::AbstractString)
字符串s中的字节数。
sizeof(T)
给定数据类型T(如果有)的规范二进制表示的大小(字节)。
julia>x=rand(100100);
julia>sizeof(x)
80000

这是出乎意料的,
x
既不是字符串也不是类型。是的,出乎意料的事实上,如果只阅读描述,您可以打开一个PR或问题到文档中,为了添加此内容,如果您愿意,我现在不能这样做,但将在其他时间尝试这样做,应该相当容易。也许它应该读
sizeof(x)\n Size,在essentials.jl:87
中,对于此方法,x对象的规范二进制表示形式的字节数。sizeof(x)似乎还有许多对象类型不适用于sizeof(我在提问之前已经尝试过,但应该在我的文本中提及)。例如,我有一个稀疏矩阵存储为数据。由此,我得到了两个不同的结果:
Base.summarysize(Data)##483747752
sizeof(Data)##40
@aireties
sizeof
给出对象的大小,而
summarysize
递归求和对象及其字段的大小
Data
包含一些对其字段的引用,这些字段不是位类型,因此
sizeof
只计算指针大小,而不是实际的数据大小。在Julia 1.0中,它被重命名为
VariInfo()。?它适用于用户类的实例吗?