def initialize
@sampler = nil
if defined? JRuby
@sampler = JavaHeapSampler.new
elsif platform =~ /linux/
@sampler = ProcStatus.new
if !@sampler.can_run?
::NewRelic::Agent.logger.debug "Error attempting to use /proc/#{$$}/status file for reading memory. Using ps command instead."
@sampler = ShellPS.new("ps -o rsz")
else
::NewRelic::Agent.logger.debug "Using /proc/#{$$}/status for reading process memory."
end
elsif platform =~ /darwin9/
@sampler = ShellPS.new("ps -o rsz")
elsif platform =~ /darwin1\d+/
@sampler = ShellPS.new("ps -o rss")
elsif platform =~ /freebsd/
@sampler = ShellPS.new("ps -o rss")
elsif platform =~ /solaris/
@sampler = ShellPS.new("/usr/bin/ps -o rss -p")
end
raise Unsupported, "Unsupported platform for getting memory: #{platform}" if @sampler.nil?
raise Unsupported, "Unable to run #{@sampler}" unless @sampler.can_run?
end