我有以下Ruby脚本:
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中是否存在内存泄漏问题?
BTW:我在MacOSX上使用Ruby 1.8.7和在Debian系统上使用1.9.2进行了测试。
答案 0 :(得分:3)
16kb并不一定意味着内存泄漏。如果你有真正的内存泄漏,它会随着时间的推移而上升到几百MB。话虽如此,你可以使用mem-prof和valgrind来查找内存泄漏。