estimar memoria

28/12/2005 - 23:37 por Matías | Informe spam
Tengo un HashTable con bastantes datos en memoria, nececito saber si existe
alguna forma de como estimar cuanta memoria esta utilizando

Gracias..

Preguntas similare

Leer las respuestas

#1 Eugenio Serrano [MVP]
29/12/2005 - 02:01 | Informe spam
A que le llamas bastantes datos ??


Saludos,
Eugenio Serrano
Analista de Sistemas
NDSoft Consultoria y Desarrollo
Microsoft MVP (ASP/ASP.Net)
http://tinyurl.com/63ybf
http://www.eugenioserrano.com.ar

"Matías" escribió en el mensaje
news:uPksW9$
Tengo un HashTable con bastantes datos en memoria, nececito saber si
existe alguna forma de como estimar cuanta memoria esta utilizando

Gracias..

Respuesta Responder a este mensaje
#2 Matias
29/12/2005 - 02:15 | Informe spam
La hashtable contiene objetos del tipo lista tambien, las cuales pueden
crecer a varios miles y quiero saber cuanto espacio en memoria me estan
utilizando.




"Eugenio Serrano [MVP]" <eugenios (-arroba-) ndsoft.com.ar> escribió en el
mensaje news:eit$
A que le llamas bastantes datos ??


Saludos,
Eugenio Serrano
Analista de Sistemas
NDSoft Consultoria y Desarrollo
Microsoft MVP (ASP/ASP.Net)
http://tinyurl.com/63ybf
http://www.eugenioserrano.com.ar

"Matías" escribió en el mensaje
news:uPksW9$
Tengo un HashTable con bastantes datos en memoria, nececito saber si
existe alguna forma de como estimar cuanta memoria esta utilizando

Gracias..





Respuesta Responder a este mensaje
#3 Miguel Angel Campos
29/12/2005 - 10:02 | Informe spam
No conozco una forma directa de conocer cuando memoria está utilizando un
objeto en .NET, pero si puedes utilizar un truco para saberlo. Consiste en
serializar el objeto mediante el BinaryFormatter, y así tener una
aproximación de la memoria que ocupa. El problema es que para serializar un
objeto necesitas un Stream que contenga los datos, y .Net solo tiene el
MemoryStream o el FileStream (ademas de otros que no vienen al caso), el
FileStream no nos vale por que no vamos a utilizar un fichero para estos
propositos, el MemoryStream nos podría valer, pero piensas que tu HashTable
puede consumir muchos recursos, así que malgastar la memoria no es buena
cosa tampoco.

La solución es crearse una clase derivada de Stream, que simplemente cuente
los datos que se van salvando, serializar el HashTable, y obtener cuantos
datos se han salvado.
Voy a dejar que tu implementes lo necesario, estos son los pasos:
- Implementar la clase que deriva de Stream. El siguiente link es al código
de Stream de .Net, donde se implementa un NullStream privado, puedes copiar
ese código y sobrescribir los métodos Write, Length, SetLength, para
registrar el tamaño de la información que se va guardando.
http://www.123aspx.com/rotor/RotorSrc.aspx?rotB051
- Serializar el HashTable mediante el BinaryFormatter.
CounterStream cnt = new CounterStream(); //Es el nombre que le he dado al
Stream que sirve de contador
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(cnt, hashtable);

MessageBox.Show(cnt.Length.ToString());

Espero que el método te sirva para algo, y si encuentras una forma mas
sencilla de saber cuando ocupa un objeto en memoria espero me lo hagas
saber.
Si tienes alguna duda acerca de la implementación del Stream me lo comentas
igualmente.
Un Saludo,

Miguel Angel Campos
MCAD.NET

"Matias" escribió en el mensaje
news:ecd%
La hashtable contiene objetos del tipo lista tambien, las cuales pueden
crecer a varios miles y quiero saber cuanto espacio en memoria me estan
utilizando.




"Eugenio Serrano [MVP]" <eugenios (-arroba-) ndsoft.com.ar> escribió en el
mensaje news:eit$
A que le llamas bastantes datos ??


Saludos,
Eugenio Serrano
Analista de Sistemas
NDSoft Consultoria y Desarrollo
Microsoft MVP (ASP/ASP.Net)
http://tinyurl.com/63ybf
http://www.eugenioserrano.com.ar

"Matías" escribió en el mensaje
news:uPksW9$
Tengo un HashTable con bastantes datos en memoria, nececito saber si
existe alguna forma de como estimar cuanta memoria esta utilizando

Gracias..









Respuesta Responder a este mensaje
#4 Marcelo Sánchez Lujambio
29/12/2005 - 11:04 | Informe spam
La categoría de memoria de CLR de .NET de la consola Rendimiento incluye
contadores que proporcionan información sobre el recolector de elementos
no utilizados quizas esto te sirva, tendrias que verlo porque al
compilar el codigo el net framework encapsula todos sus objetos.

Busca en la ayuda de .Net Framework "contadores de rendimiento de memoria"

Un saludo,
Marcelo Sánchez Lujambio
Senior Consultant/Project Management
Microsoft Windows Server System

E-mail:
MSN Messenger:
URL: http://www.europapc.com/personal

-
EUROPAPC.COM
Business Web Solutions

C/ José Doval, 53
30820 Alcantarilla - Murcia - Spain

Tel/Fax: +34 868 948 177
E-mail:
URL: HTTP://WWW.EUROPAPC.COM


-


Matías escribió:
Tengo un HashTable con bastantes datos en memoria, nececito saber si existe
alguna forma de como estimar cuanta memoria esta utilizando

Gracias..


Respuesta Responder a este mensaje
#5 Eugenio Serrano [MVP]
29/12/2005 - 13:55 | Informe spam
Bueno, puedes usar el CLR Profiler..
http://www.microsoft.com/downloads/...x?FamilyId†CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&displaylang=en

http://www.nuberos.net/Blog/tabid/1...fault.aspx

Este no lo probe pero tambien creo que puede ayudarte. (Cúentanos si te
sirvio)
http://memprofiler.com/

Yo particularmente creo que no es bueno abusar de la memoria, pero tampoco
hay que ponerse paranoico.. Hoy hay equipos con mas y mas Ram.

Saludos,
Eugenio Serrano
Analista de Sistemas
NDSoft Consultoria y Desarrollo
Microsoft MVP (ASP/ASP.Net)
http://tinyurl.com/63ybf
http://www.eugenioserrano.com.ar



"Matias" escribió en el mensaje
news:ecd%
La hashtable contiene objetos del tipo lista tambien, las cuales pueden
crecer a varios miles y quiero saber cuanto espacio en memoria me estan
utilizando.




"Eugenio Serrano [MVP]" <eugenios (-arroba-) ndsoft.com.ar> escribió en el
mensaje news:eit$
A que le llamas bastantes datos ??


Saludos,
Eugenio Serrano
Analista de Sistemas
NDSoft Consultoria y Desarrollo
Microsoft MVP (ASP/ASP.Net)
http://tinyurl.com/63ybf
http://www.eugenioserrano.com.ar

"Matías" escribió en el mensaje
news:uPksW9$
Tengo un HashTable con bastantes datos en memoria, nececito saber si
existe alguna forma de como estimar cuanta memoria esta utilizando

Gracias..









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida