2011-10-20 11 views
5

OS: Windows7 32bit memoria principal: 4 GB ruby ​​-v: rubí 1.8.6 (2008-08-11 Patchlevel 287) [i386-mswin32]uso de memoria rubí crece siempre cuando uso hilo

# big.mkv file size : 1.45GB 

ex1.rb

puts $$ 

File.open("D:/test/big.mkv", "rb") do |f| 
    while buff = f.read(4096) 
    end 
end 

sleep 1000 

ex1.rb is OK !! los usos de la memoria son aproximadamente 19.756 KB.

Pero ...

ex2.rb

puts $$ 

th1 = Thread.new do 
    loop do 
    sleep 1 
    end 
end 

File.open("D:/test/big.mkv", "rb") do |f| 
    while buff = f.read(4096) 
    end 
end 

th1.join 

ex2.rb usos de memoria se incrementa continuamente ... después de todo KB 1937948

tengo que usar hilo .. ¡¡Por favor, ayúdame!!

+0

Utilice espacios para formatear su código como código. –

+1

Bueno, su hilo nunca termina, por lo que un "join" podría tomar un tiempo. –

+2

¿Qué quieres lograr? – fuzzyalej

Respuesta

1

Hay correcciones de lectura de archivo en ruby ​​1.9. Una secuencia de comandos que escribí que lee un montón de datos se ejecuta ~ 100 veces más rápido en ruby1.9. Por favor actualice si es posible, vale la pena.