2016-01-31 27 views
7

我知道whos()函數將給出內存中所有對象的大小。這可能會很慢執行,並且有時會在某些對象上失敗,從而導致整個函數掛起。有沒有辦法在特定對象的內存中獲取大小,類似於Python中的sys.getsizeof()函數?查找內存中單個對象的大小

回答

12

whos()接受regular expressions匹配對象名稱,這樣你就可以像使用

x = rand(100, 100) 
whos(r"x") 

東西得到x信息。對於字節大小使用

Base.summarysize(x) 
4

可以使用sizeof功能:

help?> sizeof 
search: sizeof 

    sizeof(s::AbstractString) 

    The number of bytes in string s. 

    sizeof(T) 

    Size, in bytes, of the canonical binary representation of the given DataType T, if any. 

julia> x = rand(100, 100); 

julia> sizeof(x) 
80000 
+1

那是意外,'x'既不是一個字符串或類型。 – amrods

+1

是的,如果只讀了描述,那麼意想不到的是,你可以打開一個PR或問題到文檔中,爲了添加這個如果你想要的話,我現在不能這樣做,但會嘗試在其他時間這樣做,應該很容易做到。 – SalchiPapa

+1

也許它應該讀取'sizeof(x)\ n 大小(以字節爲單位)x規則二進制表示的大小(以此方法)sizeof(x)at essentials.jl:87 ' – SalchiPapa

相關問題