Hola Carlos,

Gracias por tu respuesta. Al XmlDocument lo escribo en el stratup del
application protegido con un mutex para evitar asegurar que se escribe una
unica vez, luego la consulta si es multi thread.

Con el Dictionary no estoy seguro de lo que esta sucediendo, pero para
escribirlo lo hago con un SyncLock para asegurar tambien el Thread Safe. La
lectrura también es multi thread.

Tarde en responderte porque estuve buscando en unos reportes del Debug
Diagnostic Tool y no encontré específicamente esta info. Es decir,
la encontré de un montón de otros objetos, pero no del XmlDocument ni del
Generic.Dictionary. Para dimensionar el XmlDocument, busque todos los XML
que tengo y con toda la furia llegaría a 500KB y el Dictionary debería ser
similar o menor.




Saludos,
Ing. Damián Herrera
Director
CIVINEXT
Tel. / Fax: +54 (11) 3968-0039
[email protected]
http://www.civinext.com
<http://www.linkedin.com/company/civinext-s.a.>
<http://www.facebook.com/groupware><http://www.twitter.com/damianherrera><http://www.youtube.com/user/damianherrera>
  <http://es.wikipedia.org/wiki/Civinext>



El 18 de marzo de 2013 23:07, Carlos Peix <[email protected]>escribió:

> Hola Damian,
>
> Por el lado del XMLDocument, no es una estructura muy buena para almacenar
> datos en memoria. Por un lado es muy poco eficiente en el uso de la memoria
> y no estoy seguro de que sea thread safe.
>
> Por el lado del Dictionary<,> seguro que no es thread safe para la
> escritura, deberias sincronizar el acceso para lograrlo.
>
> Ahora bien, no creo que ninguna de las dos estructuras "pierdan" objetos
> aunque haya mucha presión de memoria.
>
> Tenes una idea del tamaño de esas estructuras?
>
> ----------------------------------
> Carlos Peix
>
> 2013/3/18 Damián Herrera <[email protected]>
>
>> Buenas,
>>
>> Espero que anden bien. Hace mucho que no escribo y buscando algo de info.
>> me pareció que era algo para postear en la lista.
>>
>> Actualmente tenemos un problema en ambientes de alto
>> trafico, básicamente manejamos Generic.Dictionary(string,string) y
>> Xml.XmlDocument. Únicamente en ambientes de alto trafico, nos sucede de vez
>> en cuando que desaparecen elementos del Dictionary o el XmlDocument
>> queda vacío.
>>
>> Sospecho que el XMLDocument queda vacío porque hay momentos en los que no
>> se utiliza porque hay una capa de cache que hace que se lo consulte poco,
>> pero la referencia sigue activa dentro de una clase (esta declarado como
>> private shared). Algo similar ocurre con el Dictionary, pero este se usa
>> más que el XmlDocument.
>>
>> La consulta en si misma es, hay alguna forma de "marcar" o especificar
>> que esas variables no deben ser recolectadas o alguna manera de que me
>> entere cuando las recolectan? Es algo que estuve buscando y
>> no encontré mucha info. y no estoy seguro que tenga que ver con el GC.
>>
>> Bueno, cualquier orientación se agradece.
>>
>> Saludos!
>> Ing. Damián Herrera
>> Director
>> CIVINEXT
>> Tel. / Fax: +54 (11) 3968-0039
>> [email protected]
>> http://www.civinext.com
>> <http://www.linkedin.com/company/civinext-s.a.> 
>> <http://www.facebook.com/groupware><http://www.twitter.com/damianherrera><http://www.youtube.com/user/damianherrera>
>>   <http://es.wikipedia.org/wiki/Civinext>
>>
>>
>

Responder a