3
我有以下Ruby腳本:很簡單的Ruby GServer內存泄漏
class Server < GServer def initialize super(10001) end def serve(io) while true io.puts `ps -o rss= -p #{$$}`.to_i end end end server = Server.new server.start while true sleep 10 end
當我打開一個到服務器的連接,它顯示增加的內存使用隨着時間的推移,我沒有打開任何新的連接或做什麼都沒有。
我做錯了什麼,或者在GServer中是否存在內存泄漏問題?
順便說一句:我在MacOSX上用Ruby 1.8.7和Debian系統用1.9.2測試了它。
它泄漏到你的系統上多少錢? – 2010-09-27 22:04:12
剛開始的時候,這個過程大約有4kB,10分鐘後大約16kB – fresskoma 2010-09-27 22:05:23
它似乎永遠在io中存儲內存量,所以也許從外部使用top監視它,看看是否有泄漏。事實上,泄漏只是您每次服務器有機會運行時都會將輸出放入輸出中。 – 2010-09-27 22:09:20