Estoy automatizando algunas tareas de creación de perfiles y quiero registrar el espacio dinámico y los tamaños de generación en tiempo real. El profiling API parece terriblemente complicado para lo que necesito, y parece escuchar las asignaciones y colecciones individuales, lo cual no es tan importante para mí. Las herramientas de creación de perfiles son de gran ayuda, por supuesto, pero estaba buscando una interfaz más flexible y programable.¿Hay alguna manera de recuperar el uso de la memoria actual de una aplicación C#?
Respuesta
El término 'uso actual de memoria' está un poco definido. ¿Te refieres al conjunto de trabajo? Lo que sea que signifique, puede usar diferentes propiedades como VirtualMemorySize
, WorkingSet
, PrivateMemorySize
, etc. de la clase de proceso para recuperarlo.
long workingSet = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
Existen contadores de rendimiento para muchas de estas cosas y si no puede usar Perfmon, puede acceder a los contadores a través de la API de diagnósticos.
Una vez que tenía que encontrar una pérdida de memoria en un código heredado, me encontré con esta solución: Inicio "lista de tareas" con parámetros adecuados como un proceso y leer la salida ya sea de corriente o de archivo.
p. Ej.
tasklist /fi "IMAGENAME eq notepad++.exe" /FO CSV /NH
de salida es:
"notepad++.exe","7132","Console","1","21.004 K"
No es que elegante, pero funciona en cualquier lenguaje de programación en Windows sin dependencias adicionales (C++/Qt en mi caso).
- 1. ¿Hay alguna manera de ver cuánta memoria usa una variable?
- 2. ¿Hay alguna manera de inspeccionar el rpath actual en Linux?
- 3. ¿Hay alguna manera de acceder y recuperar los recordatorios de iCloud con la aplicación Ruby?
- 4. ¿Hay alguna manera de limitar la memoria, ghci puede tener?
- 5. elisp: ¿Hay alguna manera de obtener el nombre del módulo .el actual (como __FILE__ en C)?
- 6. ¿Hay alguna manera de recuperar el autoincrement ID de una instrucción preparada?
- 7. Limitar el uso de memoria de una aplicación .net
- 8. Cómo reducir el uso de memoria de una aplicación WPF
- 9. Uso de memoria del proceso actual en C
- 10. ¿Hay alguna manera de desactivar una etiqueta?
- 11. ¿Hay alguna manera de forzar el WorkingSet de un proceso de 1 GB en C++?
- 12. ¿Hay alguna manera de omitir el parámetro?
- 13. ¿Hay alguna manera de recuperar un nombre de función de PowerShell dentro de una función?
- 14. ¿Hay alguna manera de revertir una cripta() en c?
- 15. ¿Hay alguna manera de especificar una expresión lambda C# "vacía"?
- 16. ¿Hay alguna manera de obtener el nombre de la función dentro de una función de C++?
- 17. ¿Hay alguna manera de verificar el tamaño de pila disponible antes de una llamada recursiva? (C#)
- 18. ¿Cómo evitar quedarse sin memoria en la aplicación de uso de memoria alta? C/C++
- 19. ¿Hay alguna manera de establecer la cantidad de memoria disponible en el simulador de iPhone?
- 20. Uso de memoria actual en Lisp
- 21. ¿Hay alguna manera de volcar una C struct?
- 22. ¿Hay alguna manera de hacer una función atómica en C? .
- 23. En Vim, ¿hay alguna manera de copiar el número de línea actual en un búfer?
- 24. ¿Hay alguna manera de recuperar elementos utilizando solo nombres locales en una consulta Linq-to-XML?
- 25. ¿Hay alguna manera de recuperar la definición de vista de un servidor SQL utilizando ADO simple?
- 26. ¿Hay alguna manera de pausar una CABasicAnimation?
- 27. ¿Hay alguna manera de recuperar un elemento de Sitecore usando un idioma diferente al del contexto actual?
- 28. ¿Hay alguna manera de "limpiar" una superficie?
- 29. ¿Supervisa el uso de memoria en una aplicación de iphone?
- 30. Android: ¿Hay alguna manera de implementar el escáner de código de barras en una aplicación?