2008/6/30 Rafael Bidegain <[EMAIL PROTECTED]>:
> El día 29 de junio de 2008 18:05, Lucas Sallovitz
> <[EMAIL PROTECTED]> escribió:
>> 2008/6/29 Rafael Bidegain <[EMAIL PROTECTED]>:
>>> cadena = "algo"
>>> por
>>> cadena.replace("algo")
>>
>> Si a tu programa "le da lo mismo" que la cadena antigua siga
>> existiendo o no (ese código indicaría que si).
> a mi programa le interesa el contenido del objeto cadena.
> si yo no uso cadena.replace estoy creando un objeto nuevo con cada
> asignacion del tipo cadena = "algo"
> podes verificarlo con irb
> irb(main):001:0> cadena="algo"
> => "algo"
> irb(main):002:0> cadena.object_id
> => 23719830
> irb(main):003:0> cadena="algo mas"
> => "algo mas"
> irb(main):004:0> cadena.object_id
> => 23713040
> irb(main):005:0> cadena.replace("otra cosa")
> => "otra cosa"
> irb(main):006:0> cadena.object_id
> => 23713040
> irb(main):007:0>
>
>> La cadena anterior
>> debería ser recolectada por el GC,
> el GC la debería recolectar en cada nueva asignación o al finalizar la
> ejecución del script?
> se me ocurrió contar los objetos para verificar esto.
Depende de la implementación, supuestamente es "inteligente", pero
como es un proceso costoso no corre en cada asignación ni mucho menos
(en mri básicamente tiene que detener el programa y ver si cada objeto
todavía es referenciable)
>> lo que podés probar es forzar la
>> ejecución cada tanto,
> como ?
GC.start
>
>> pero la otra posibilidad es que tengas un bug en
>> el programa y que las cadenas anteriores sigan referenciadas por otro
>> lado, con lo cual la memoria no se puede liberar.
> es posible, pero no creo.
Eppur si muove :)
El código en cuestión es muy complicado o privado?, si no postealo...
>
>> Por otro lado que se apague la máquina porque un script ocupa mucha
>> memoria me parece raro.
> Eppur si muove :)
>
>>
>> Saludos. Lucas.
> saludos
>
>
>
> --
> /* Rafael Bidegain
> Linux Registered User # 204304
> CaFeLUG Grupo de Usuarios de Software Libre de Capital Federal
> http://www.cafelug.org.ar */
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar