module Fiddlesticks::Memory
Public Instance Methods
calculate_memory(before, after, type)
click to toggle source
# File lib/fiddlesticks/memory.rb, line 48 def calculate_memory before, after, type before.to_f && after.to_f && type.to_sym memory_used = after - before return memory_used = "%g #{type.upcase}" % ("%.4f" % memory_used) unless memory_used == 0 "Less than 1 MB" end
get_memory(type)
click to toggle source
# File lib/fiddlesticks/memory.rb, line 4 def get_memory type type.to_sym memory = `ps -o rss= -p #{Process.pid}`.to_f case type when :mb then memory = memory/1024 when :gb then memory = memory/1024/1024 when :kb then memory end return memory if [:kb, :mb, :gb].include?(type) raise ArgumentError.new("Argument is not of type Symbol, expected one of(:kb, :mb, :gb)") end
total_memory(type)
click to toggle source
# File lib/fiddlesticks/memory.rb, line 18 def total_memory type type.to_sym os = "" if OS.windows? total_memory = "" os = "Windows" elsif OS.mac? total_memory = `sysctl hw.memsize`.split(" ").last.to_i os = "Mac" elsif OS.linux? total_memory = %x(free).split(" ")[7].to_i os = "Linux" else total_memory = "" os = "Unkown OS" end case type when :kb then total_memory when :mb then total_memory = total_memory/1024 when :gb then total_memory = total_memory/1024/1024/1000 end return "%.2f #{type.upcase}" % total_memory if [:kb, :mb, :gb].include?(type) && total_memory.is_a?(Integer) raise ArgumentError.new("Argument is not of type Symbol, expected one of(:kb, :mb, :gb)") raise NotImplementedError.new("Fiddlesticks either lack support or could not figure out the os: #{os}") if ["Windows", "Unkown OS"].include?(os) end