def memory_info_ex
    info = File.new("/proc/#{@pid}/statm").readline.split[0...7]
    vms, rss, shared, text, lib, data, dirty = info.map {|i| i.to_i * PAGE_SIZE}
    OpenStruct.new(vms: vms, rss: rss, shared: shared, text: text, lib: lib,
                  data: data, dirty: dirty)
  end
def memory_info_ex
    info = File.new("/proc/#{@pid}/statm").readline.split[0...7]
    vms, rss, shared, text, lib, data, dirty = info.map {|i| i.to_i * PAGE_SIZE}
    OpenStruct.new(vms: vms, rss: rss, shared: shared, text: text, lib: lib,
                  data: data, dirty: dirty)
  end
============================================================
 | FIELD  | DESCRIPTION                         | AKA  | TOP  |
  ============================================================
 | rss    | resident set size                   |      | RES  |
 | vms    | total program size                  | size | VIRT |
 | shared | shared pages (from shared mappings) |      | SHR  |
 | text   | text ('code')                       | trs  | CODE |
 | lib    | library (unused in Linux 2.6)       | lrs  |      |
 | data   | data + stack                        | drs  | DATA |
 | dirty  | dirty pages (unused in Linux 2.6)   | dt   |      |
  ============================================================