2011-10-20 12 views
5

System operacyjny: Windows7 32-bitowy pamięci głównej: 4 GB rubin -v Ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]wykorzystanie pamięci rubin rośnie zawsze gdy stosuje gwint

# 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 jest OK !! wykorzystanie pamięci wynosi około 19 756 KB.

Ale ...

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 zwyczaje pamięci wzrasta nieustannie ... przecież 1937948 KB

muszę używać wątek .. Proszę pomóż mi!!

+0

Proszę używać spacji, aby sformatować swój kod jako kod. –

+1

Cóż, twój wątek nigdy się nie kończy, więc 'join' może zająć trochę czasu. –

+2

Co chcesz osiągnąć? – fuzzyalej

Odpowiedz

1

Istnieją poprawki odczytu pliku w Ruby 1.9. Skrypt napisałem, który czyta tonę danych biegnie ~ 100x szybciej na ruby1.9. Jeśli to możliwe, uaktualnij, warto.

Powiązane problemy