2016-01-31 13 views
7

Ich weiß, dass die whos() Funktion wird die Größe aller Objekte im Speicher geben. Dies kann sehr langsam ausgeführt werden und wird manchmal bei bestimmten Objekten fehlschlagen, wodurch die gesamte Funktion hängen bleibt. Gibt es eine Möglichkeit, die Größe im Speicher eines bestimmten Objekts, ähnlich die sys.getsizeof() Funktion in Python zu erhalten?Finden Sie die Größe des einzelnen Objekts im Speicher

Antwort

12

whos() akzeptiert regular expressions Objektnamen übereinstimmen, so können Sie so etwas wie

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

zu erhalten Informationen über x verwenden. Für die Größe

Base.summarysize(x) 
4

Sie können die sizeof Funktion in Bytes verwenden:

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

die unerwartet war, 'X' weder oder eine Art eine Zeichenfolge ist. – amrods

+1

Ja unerwartet, wenn man nur die Beschreibung liest, könnte man eine PR oder ein Problem mit der Dokumentation öffnen, um dies hinzuzufügen, wenn man will, ich kann es jetzt nicht tun, werde es aber ein anderes Mal versuchen, sollte ziemlich einfach sein. – SalchiPapa

+1

Vielleicht sollte es lesen "sizeof (x) \ n Größe, in Bytes, der kanonischen Binärdarstellung des X-Objekts" für diese Methode 'sizeof (x) bei essentials.jl: 87 ' – SalchiPapa

Verwandte Themen