Skip to content

Commit c9a5df5

Browse files
committed
Avoid having to post-process file by generating the correct output
1 parent a9636f4 commit c9a5df5

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

src/eflame.erl

+7-9
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ stack_collapse(Stack) ->
212212
entry_to_iolist({M, F, A}) ->
213213
[ atom_to_binary(M, utf8), <<":">>
214214
, atom_to_binary(F, utf8), <<"/">>
215-
, integer_to_list(A)
215+
, integer_to_binary(A)
216216
];
217217
entry_to_iolist(A) when is_atom(A) ->
218218
[atom_to_binary(A, utf8)].
@@ -231,13 +231,11 @@ dump_to_iolist(Pid, Stacks) ->
231231
dump_to_iolist(_PidList, [], Result) ->
232232
Result;
233233
dump_to_iolist(PidList, [{N, Stack} | Rest], Result) ->
234-
Item = stack_to_iolist(PidList, Stack),
235-
Items = lists:duplicate(N, Item),
236-
dump_to_iolist(PidList, Rest, [Items | Result]);
237-
dump_to_iolist(PidList, [Stack | Rest], Result) ->
238-
Item = stack_to_iolist(PidList, Stack),
234+
Item = stack_to_iolist(PidList, N, Stack),
239235
dump_to_iolist(PidList, Rest, [Item | Result]).
240236

241-
-spec stack_to_iolist(string(), list()) -> iolist().
242-
stack_to_iolist(PidList, Stack) ->
243-
[PidList, <<";">>, stack_collapse(Stack), <<"\n">>].
237+
-spec stack_to_iolist(string(), integer(), list()) -> iolist().
238+
stack_to_iolist(PidList, N, Stack) ->
239+
[ PidList, <<";">>, stack_collapse(Stack)
240+
, <<" ">>, integer_to_binary(N)
241+
, <<"\n">>].

stack_to_flame.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
me="$(dirname $0)"
44

5-
uniq -c | awk '{print $2, " ", $1}' | $me/flamegraph.pl
5+
$me/flamegraph.pl $1

0 commit comments

Comments
 (0)