defmodule ProcExtras do def list() do Process.list() |> Enum.map(fn (x) -> [initial_call: {c, _, _}, total_heap_size: s, message_queue_len: m] = Process.info(x, [:initial_call, :total_heap_size, :message_queue_len]); [c, x, s, m] end) |> Enum.sort(fn [_ , _, sa, _], [_, _, sb, _] -> sa >= sb end) |> Enum.take(20) |> Enum.each(fn [c, x, s, m] -> IO.puts("#{inspect x}\t#{s}\t#{m}\t#{c}") end) end end