module Memory::Leak::System

def self.memory_usages(process_ids)

@returns [Array(Tuple(Integer, Integer))] The memory usage of the given process IDs.
@parameter process_ids [Array(Integer)] The process IDs to monitor.

Get the memory usage of the given process IDs.
def self.memory_usages(process_ids)
	return to_enum(__method__, process_ids) unless block_given?
	
	if process_ids.any?
		IO.popen(["ps", "-o", "pid=,rss=", "-p", process_ids.join(",")]) do |io|
			io.each_line.map(&:split).each do |process_id, size|
				yield process_id.to_i, size.to_i * 1024
			end
		end
	end
end