C'è qualche funzione nel rubino, per trovare la memoria usata dall'oggetto rubino.
Simile a come C ha la funzione sizeof()
e PHP ha la funzione memory_get_usage()
. Il rubino ha una funzione/metodo equivalente?Come trovare la memoria usata dall'oggetto ruby?
risposta
Questo è un tratto, ma se il tuo obiettivo è quello di cercare una perdita di memoria, piuttosto che vedere le dimensioni dei singoli oggetti, si potrebbe guardare object_count(cls)
, come in:
>> ObjectSpace.each_object(Object).count
=> 114629
>> ObjectSpace.each_object(Array).count
=> 10209
ecc FWIW, simboli sono un po 'diverso: è possibile ottenere il conteggio dei simboli tramite:
>> Symbol.all_symbols.count
=> 17878
per scoprire se si dispone di una perdita di no, è possibile chiamare manualmente GC, contare gli oggetti, eseguire il codice per un po', chiama di nuovo GC, quindi verifica se il numero di oggetti è cresciuto in modo significativo.
Ovviamente, questo non indica la dimensione di ciascun oggetto, solo il numero di ciascuna classe assegnata.
C'è anche memprof, ma ammetto che non l'ho ancora usato.
Questo è il numero di oggetti in memoria. La domanda originale, a quanto ho capito, si chiede come scoprire l'utilizzo della memoria (in byte) di un singolo oggetto. – Ariejan
@ Ariejan: completamente d'accordo. Ecco perché ho detto "* se * il tuo obiettivo è cercare una perdita di memoria, piuttosto che vedere la dimensione dei singoli oggetti ..." –
- 1. Quanta memoria è usata da un numdy ndarray?
- 2. Dove posso trovare app complesse per la matematica in Ruby & Ruby on Rails
- 3. Ruby: Impossibile allocare memoria
- 4. Impossibile trovare la perdita di memoria
- 5. Dove va la memoria della memoria di Ruby e come si può verificare se è impostata?
- 6. Come trovare la memoria utilizzata da una scheda di cromo usando javascript
- 7. Come dovrebbe essere usata la macro wcar di carmine?
- 8. Progettare un algoritmo, trovare la parola più frequentemente usata in un libro
- 9. dove posso trovare la piccola immagine punto rosso usata in google map?
- 10. Modello di memoria in Ruby
- 11. Come trovare perdite di memoria con Clang
- 12. Rotaie ruby - come trovare più opzioni?
- 13. Ruby: impossibile trovare RedCloth-4.2.9
- 14. Perché una libreria nativa usa una quantità di memoria 1,5 volte superiore quando viene usata da java come quando viene usata da un C-Programm sotto linux?
- 15. Come posso trovare una perdita di memoria su Heroku?
- 16. ruby regex trovare e sostituire
- 17. Qual è la variabile 'cls' usata nelle classi Python?
- 18. Trovare la linea di perdita di memoria in Strumenti
- 19. Come posso configurare il Jaxb2Marshaller usata da MVC: annotazione-driven
- 20. C'è uno strumento per rimuovere la variabile indesiderata non usata
- 21. Trovare la gemma radice
- 22. Come trovare la dimensione della memoria virtuale e la dimensione della cache di un sistema Linux?
- 23. Come gestire le perdite di memoria in RMagick in Ruby?
- 24. Impossibile allocare memoria (No MemoryError) in Ruby?
- 25. Come trovare perdite di memoria in java usando JProfiler?
- 26. Come trovare la vera causa di avviso di memoria e come risolvere nell'app per iOS
- 27. Come posso trovare le dipendenze del metodo Ruby?
- 28. Come utilizzare Application Verifier per trovare perdite di memoria
- 29. Come trovare problemi di smaltimento e di memoria? C#
- 30. Come trovare il resto di una divisione in Ruby?
Probabilmente un duplicato: http://stackoverflow.com/questions/3973094/how-to-measure-the-size-of-a-ruby-object – Matt
@Matt - Grazie. –
Sono curioso: qual è lo scopo della tua domanda? Vuoi essere in grado di conoscere la dimensione di un oggetto o stai cercando di capire quanta memoria avrà un numero elevato di determinati oggetti? – Sim