none
Guardar Colecciones en memoria - Rendimiento RRS feed

  • Pregunta

  •  

    Buenas, quisiera saber cuanta data puedo " persistir " en memoria, para ser mas claro:

    tengo una clase persona y persisto un list<persona> en memoria

    cuantas instancias maximas de una clase puedo persistir en  memoria y como las puedo reducir o eliminarlas?

     

    como puedo hacer mas ligero esta persistencia en memoria de estas instancias luego de ya no necesitarlas, he investigado un poco sobre el patron Dispose pero quisiera mas opiniones al respecto, muchas gracias Smile

    domingo, 18 de noviembre de 2007 4:30

Todas las respuestas

  • me atrevo yo. porque ciertamente datos concretos ... por eso digo me atrevo.

     

    En memoria mientras tengas memoria fisica y despues toda la memoria virtual con lo que aproximadamente ilimitado hasta que se convierta en un problema sin solucion.

     

    Se haría más ligero reusando. Si necesitas 10 y 10 no uses 20 sino diez y sobreescribes las otras diez y mientras tanto lo mandas a una base de datos o a archivos.

     

    Los archivos si no me equivoco van a ser 4 Gb como maximo pero no tiene porque ser uno, la base de datos puede ser tedioso enviar y recibir los datos ...

    en cualquier caso antes que una sobrepaginacion .... esto se producia cuando costaba mas el uso de la memoria virtual que su propio rendimiento va a ser mejor echar mano de las bases de datos y archivos porque estan ahi y ahorran recursos.

    miércoles, 21 de noviembre de 2007 19:51
  •  

    ahora venia a atreverme con un chiste de punteros ... pero se me ha olvidado.

     

    Mira, resulta que los objetos que instanciamos son tipos por referencia y eso es un pequeño cambio con respecto a los tipos por valor de modo que es probable que yo antes te he indicado mal porque es que tampoco llevo mucho tiempo en esto.

     

    Solo te voy a comentar un detallito ... yo le llamo hacer back slide por la memoria.

    No sé si has trabajado en C y sus punteros pero resultaba que en un momento dado por una razon interna del sistema o del propio puntero se te cascaba o tumbaba o se te caia o incluso petaba la aplicación porque resultaba que habías echo una operación no valida con punteros.

     

    La lección que yo obtuve es que no se puede ir con punteros y a lo loco porque despues en tda´s cogimos un estandar nos centramos en el trabajo y dejamos de investigar y revertimos la perdida ... ahora aqui andamos con .NET.

     

    Como te digo no se de donde vienes y si acaso me comentas o bien no sé, nos cruzaremos por aqui en otra ocasion pero más alla de conocimientos y finalidades and presentaciones.

     

    En C el espacio que ocupaba un puntero en memoria era muuuucho más chiquitito que lo que ocupaba una variable del mismo tipo y que no fuera de tipo puntero. No me atrevo a decir muy fuerte que exactamente lo mismo para cada tipo pero creo que sí era una sola dirección y una dirección es una dirección osea 8 bits, no?

     

    Así que una cadena HOLA MUNDO que ocupa del orden de en lo que quepa HOLA MUNDO caracter a caracter escrito en memoria, podiamos tener en una en una "Cadena" lo entrecomillo porque no se si decir array de caracteres aquí.

    Entonces como decia esa cadena HOLA MUNDO ocupaba un taquito pero luego la dardeabamos con todos los punteros que nos daba la gana que cmo ocupaba poquito pues ahora podiamos obtener un poco de juego. Tiene sus inconvenientes los tipos por referencia. Y sus grandes ventajas.

     

    Yo pediría la palabra de alguien que nos informe un poquito acerca de qué es un tipo por referencia aquí en .NET y si va a ser capaz de producir los efectos que producia en C o si viene más comedido.

     

    En C lo que podia pasar es que uno de los punteros que yo apuntaba a la H de hola y a patir de los cuales recorria fuese modificado por el valor de otro puntero o fuese suprimido o que si recorrias hola mundo y te pasabas pues en vez de imprimir hola mundo imprimias caracteres ilegibles y cosas inesperadas. Pero esto son mis historias y mis anecdotas.

     

    A mi me vendría bien tambien alguien que lo tuviera mas claro y siento si he armado ruido

    ademas de verdad, porque no se si estoy respondiendo a lo mismo que preguntas o a lo que me ha parecido y sin mala intencion. Si procede se quita esto. Yo edito en cualquier caso porque hablo de objetos y se pregunta por colecciones y la verdad que no sé si hay tiempo de leerlo todo.

     

    Un saludo.

    jueves, 22 de noviembre de 2007 5:35