So che la funzione whos()
darà la dimensione di tutti gli oggetti in memoria. Questo può essere piuttosto lento da eseguire, e a volte può fallire su determinati oggetti, facendo appendere l'intera funzione. C'è un modo per ottenere la dimensione in memoria di un oggetto specifico, simile alla funzione sys.getsizeof()
in Python?Trova la dimensione del singolo oggetto nella memoria
7
A
risposta
12
whos()
accetta regular expressions per abbinare i nomi degli oggetti, in modo da poter usare qualcosa come
x = rand(100, 100)
whos(r"x")
per ottenere informazioni su x
. Per la dimensione in byte utilizzare
Base.summarysize(x)
4
È possibile utilizzare la funzione 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
che è stato inaspettato, 'x' non è né una stringa o un tipo. – amrods
Sì, inaspettatamente, se si legge solo la descrizione, è possibile aprire un PR o un problema con i documenti, per aggiungere questo se lo si desidera, non posso farlo ora, ma cercherò di farlo in un altro momento, dovrebbe essere abbastanza facile da fare – SalchiPapa
Forse dovrebbe leggere 'sizeof (x) \ n Dimensione, in byte, della rappresentazione binaria canonica dell'oggetto x' per questo metodo' sizeof (x) a essentials.jl: 87 ' – SalchiPapa