Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 29 Mayo 2022, 10:33 am



Título: Saber cuántos bytes consume la RAM y el archivo exe
Publicado por: Meta en 29 Mayo 2022, 10:33 am
Buenas:

Quiero saber si en algún lugar de Visual Studio Community 2022 hay alguna opción o indica alguna parte cuantos bytes se tanto en la RAM y el propio archivo exe tienen. La RAM por una parte y el exe por otro. Solo saber si te indica esa información por algún lado.

Por ejemplo, en otros compiladores como en Arduino IDE, tiene este mensaje al final, para que se hagan una idea a lo que me refiero.

El Sketch usa 7386 bytes (22%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
Las variables Globales usan 671 bytes (32%) de la memoria dinámica, dejando 1377 bytes para las variables locales. El máximo es 2048 bytes.


Si no es posible, al menos crear un programa o una función que me muestre en un archivo de texto .txt este tipo de mensaje al compilar un programa hecho en C#, para tener una idea. ;) Si es que C# es capaz de poder hacerlo, que es otra cosa.

Saludos.


Título: Re: Saber cuántos bytes consume la RAM y el archivo exe
Publicado por: Serapis en 30 Mayo 2022, 17:09 pm
Esto era crítico en tiempos pretéritos, cuando la memoria estaba muy limitada.
En la medida en que la memoria ha crecido (a lo largo de los años, viendo nacer nuevos S.O.), esto es ya innecesario.

...desde que había solo disponible unos pocos kilobytes de memoria y necesitabas saber si tu 'programa' cabría en la memoria, ha llovido mucho.

En general el S.O. por tener funcionalidad para gestionar la memoria, podría totalizar tales valores, pero no tiene sentido que lo exponga al exterior. Incluso el propio S.O. no necesita totalizar lo que un programa consume en todo caso puntualmente la memoria ocupada en una llamada, etc... justamente para eso, gestionar la memoria lo más eficientemente posible.

Técnicamente un programador debe saber cuanta memoria consume su programa. Pués sabe en un momento dado cuantas variables están en uso y cuántos bytes consume cada variable. En general las variables sueltas de un programa son 'despreciables' (por que al final serán solo unas decenas o pocas centenas), lo que suele ocupar gran tamaño son los arrays, métodos recursivos (sobretodo si los parámetros no se pasan por referencia) y complejidades dependientes de herencia (objetos).
Sobre los arrays y métodos recursivos, también puede uno calcular el consumo de memoria pues sabe el tamaño de cada uno de ellos y la memoria consumida por cada variable unitaria, los objetos es ya mas complejo, pués además hay referencias ocultas para mantener enlazados los objetos y suelen ser valores desconocidos (con exactitud), por parte del programador... no obstante la experiencia, te enseña por 'aproxmación' la estimación de tales valores.

En definitiva, no es ninguna función primordial hoy día de ningún sistema de explotación en programación donde los recursos van sobrados, por ello no se implementa.

Si a pesar de todo precisas algo (no exhaustivo), investiga sobre procesos, suele aportar algo de info no precisa al respecto.

p.d.: En windows, por ejemplo debería valerte con el 'task manager'... pero verás como los valores fluctúan en el tiempo de modo instantáneo, especialmente si es un programa grande y complejo.


Título: Re: Saber cuántos bytes consume la RAM y el archivo exe
Publicado por: Meta en 1 Junio 2022, 21:54 pm
Gracias por las respuestas.  :D