2016-01-31 12 views
7

whos() işlevinin bellekteki tüm nesnelerin boyutunu vereceğini biliyorum. Bu, yürütmek için oldukça yavaş olabilir ve bazen tüm nesnelerin askıda kalmasını sağlayarak bazı nesneler üzerinde başarısız olur. Python'daki sys.getsizeof() işlevine benzer şekilde belirli bir nesnenin belleğinde boyut almanın bir yolu var mı?Bellekte tek bir nesnenin boyutunu bulma

cevap

12

whos() nesne adlarını maç için regular expressions kabul eder böylece x hakkında bilgi almak için

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

gibi bir şey kullanabilirsiniz. bayt cinsinden boyutu

Base.summarysize(x) 
4

kullanın Sen sizeof işlevini kullanabilirsiniz: `x` bir dize veya tipi ne beklenmedik oldu

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

olduğunu. – amrods

+1

Gerçekten bir kişi yalnızca açıklamayı okuduğunda beklenmedik, isterseniz bunu eklemek için bir PR veya sorun oluşturabilir, şu anda bunu yapamam, ancak başka bir zamanda yapmaya çalışacağım, yapması oldukça kolay olmalı. – SalchiPapa

+1

Belki de, x nesnesinin x ikili nesnesinin ikili ikili gösteriminin "sizeof (x) \ n boyutunu" içermesi gerekir. Essentials. Nl: 87 ' – SalchiPapa