60: def self.vmstat_darwin_find_free_memory()
61:
62: memfree = 0
63: pagesize = 0
64: memspecfree = 0
65:
66: vmstats = Facter::Util::Resolution.exec('vm_stat')
67: vmstats.each_line do |vmline|
68: case
69: when vmline =~ /page\ssize\sof\s(\d+)\sbytes/
70: pagesize = $1.to_i
71: when vmline =~ /^Pages\sfree:\s+(\d+)\./
72: memfree = $1.to_i
73: when vmline =~ /^Pages\sspeculative:\s+(\d+)\./
74: memspecfree = $1.to_i
75: end
76: end
77:
78: freemem = ( memfree + memspecfree ) * pagesize
79: Facter.add("MemoryFree") do
80: setcode do
81: Facter::Memory.scale_number(freemem.to_f, "")
82: end
83: end
84: end