Me gustaría calcular cuánta memoria RAM está usando cada uno de mis objetos dentro de mi espacio de trabajo actual. ¿Hay una forma fácil de hacer esto?Determinar el uso de memoria de los objetos?
Respuesta
Hace algún tiempo me robó esta pequeña pepita de here:
sort(sapply(ls(),function(x){object.size(get(x))}))
que me ha servido bien
Usted podría intentar la función lsos()
de this question:
R> a <- rnorm(100)
R> b <- LETTERS
R> lsos()
Type Size Rows Columns
b character 1496 26 NA
a numeric 840 100 NA
R>
1. por tamaño del objeto
para obtener la asignación de memoria en una objeto por objeto base, llame object.size() y pase el objeto de interés:
object.size(My_Data_Frame)
(a menos que el argumento pasado en es una variable, debe ser citado, o bien envuelto en una llegar llamada.) nombre de la variable, entonces omitir las comillas,
puede recorrer el espacio de nombres y obtener el tamaño de todos los objetos en ella, al igual que :
for (itm in ls()) {
print(formatC(c(itm, object.size(get(itm))),
format="d",
big.mark=",",
width=30),
quote=F)
}
2. por tipo de objeto
para conseguir uso de memoria para el espacio de nombres, según el tipo de objeto, utilice memory.profile()
memory.profile()
NULL symbol pairlist closure environment promise language
1 9434 183964 4125 1359 6963 49425
special builtin char logical integer double complex
173 1562 20652 7383 13212 4137 1
(Hay otra función , memory.size() pero he escuchado y leído que parece que solo funciona en Windows. Simplemente devuelve un valor en MB; así que para obtener la máxima memoria utilizada en cualquier momento de la sesión, use memory.size (max = T)).
Esta pregunta se publicó y obtuvo respuestas legítimas hace tanto tiempo, pero quiero hacerle saber otros consejos útiles para obtener el tamaño de un objeto utilizando una biblioteca llamada gdata y su función ll()
.
library(gdata)
ll() # return a dataframe that consists of a variable name as rownames, and class and size (in KB) as columns
subset(ll(), KB > 1000) # list of object that have over 1000 KB
ll()[order(ll()$KB),] # sort by the size (ascending)
- 1. Cómo determinar el uso de memoria en mi aplicación .NET
- 2. ¿Cómo puedo verificar el uso de memoria de los objetos en iPython?
- 3. ¿Determinar el uso de memoria de elementos DOM en caché en JavaScript?
- 4. Determinar dónde se produjeron las asignaciones de objetos para los objetos en el montón
- 5. Uso de la memoria de los iteradores en C#
- 6. Uso de la memoria de almacenamiento local de subprocesos
- 7. Limite el uso de memoria de JTextPane
- 8. Uso de memoria de datos centrales y advertencia de memoria
- 9. XNA Content.Load() Uso de memoria
- 10. Uso de memoria de marco de entidad
- 11. Optimizar el uso de memoria en numpy
- 12. limitar el uso de memoria de Node.js
- 13. Uso de fugas y objetos de instrumentos: ¿se cuentan los objetos liberados automáticamente como fugas?
- 14. uso de la memoria en I
- 15. Does System.Web.Caching.Cache ¿Eliminar los objetos purgados de la memoria caché?
- 16. ¿Cómo puedo determinar qué objetos contienen referencias a otros objetos que causan pérdidas de memoria en Object-C?
- 17. ¿Cómo perfil el uso de la memoria?
- 18. cómo reducir el uso de memoria solr?
- 19. uso de la memoria de los constructores en Haskell
- 20. Pérdida de memoria durante el uso de NSDateFormatter
- 21. Medición del uso de memoria de los controladores de dispositivo en Windows
- 22. Uso de la memoria de Python: ¿Cuál de mis objetos está ocupando la mayor cantidad de memoria?
- 23. Cómo calcular el uso de la memoria en PHP
- 24. ¿El método clear() del diccionario elimina todos los objetos relacionados con los elementos de la memoria?
- 25. Determinar el tamaño de la memoria asignada dinámicamente en C
- 26. Android - uso de memoria/CPU
- 27. ABAP: sincronización de objetos de memoria compartida
- 28. ¿Determinar cuánta memoria usa una clase?
- 29. ¿Una forma de determinar el uso de memoria "real" de un proceso, es decir, un RSS sucio privado?
- 30. Redis 10x más uso de memoria que los datos
también, si se desea que la memoria total utilizada por una sesión de R, se puede hacer 'object.size (x = lapply (ls(), get))' y 'impresión (object.size (x = lapply (ls(), get)), units = "Mb") ' – tflutre
Ese pequeño y agradable nugged me confundió, ya que tenía algo grande llamado 'x' (pista: parecía pequeño); aquí hay un reemplazo: 'sort (sapply (mget (ls()), object.size))'. – petrelharp
@tflutre Según tengo entendido, este tipo de cosas pueden ser engañosas ya que R es una copia en escritura. Si tomo some_list <- some_other_list, el tamaño de some_list se informa como el mismo tamaño que some_other_list, pero si solo leo desde some_list, la memoria se comparte. ¿Alguien puede confirmar si esto es correcto? – savagent