Tarantool development patches archive
 help / color / mirror / Atom feed
From: Igor Munkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Sergey Kaplun <skaplun@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH luajit] tools: make memprof parser output user-friendly
Date: Fri, 26 Mar 2021 23:33:56 +0300	[thread overview]
Message-ID: <20210326203356.GJ29703@tarantool.org> (raw)
In-Reply-To: <20210326164855.30242-1-skaplun@tarantool.org>

Sergey,

Thanks for the patch! LGTM, except the couple of nits below.

On 26.03.21, Sergey Kaplun wrote:
> Profiler parser output looks like the following:
> | ALLOCATIONS
> | @true_memleak.lua:6, line 9: 3	144	0
> | @true_memleak.lua:6, line 8: 2	41	0
> 
> Line of function definition is confusing for users and looks redundant.

Typo: s/is confusing for/confuses/.

> Also, these "magic numbers" may shock users.

Minor: Are you still talking about the line of function definition or
about the events/bytes here? It's a bit unclear from the wording.

> 
> This patch removes lines of function definitions from the output.
> Info about the line function definition is saved inside symbol info
> table by field `defined` (it can be used later for a user's custom
> parser). Moreover, explanatory words and signs are added to numbers
> for more verbose output.
> 
> After the patch, profiler parser output looks like the following:
> | ALLOCATIONS
> | @true_memleak.lua:9: 3 events	+144 bytes	-0 bytes
> | @true_memleak.lua:8: 2 events	+41 bytes	-0 bytes
> 
> Resolves tarantool/tarantool#5811
> Part of tarantool/tarantool#5657
> ---
> Branch: https://github.com/tarantool/luajit/tree/skaplun/gh-5811-user-friendly-memprof
> Tarantool branch: https://github.com/tarantool/tarantool/tree/skaplun/gh-5811-user-friendly-memprof
> Issues:
> * https://github.com/tarantool/tarantool/issues/5811
> * https://github.com/tarantool/tarantool/issues/5657
> 
>  test/tarantool-tests/misclib-memprof-lapi.test.lua | 4 +++-
>  tools/memprof/humanize.lua                         | 2 +-
>  tools/utils/symtab.lua                             | 5 +++--
>  3 files changed, 7 insertions(+), 4 deletions(-)
> 

<snipped>

> diff --git a/tools/memprof/humanize.lua b/tools/memprof/humanize.lua
> index 109a39db..2d5814c6 100644
> --- a/tools/memprof/humanize.lua
> +++ b/tools/memprof/humanize.lua
> @@ -20,7 +20,7 @@ function M.render(events, symbols)
>  
>    for i = 1, #ids do
>      local event = events[ids[i]]
> -    print(string.format("%s: %d\t%d\t%d",
> +    print(string.format("%s: %d events\t+%d bytes\t-%d bytes",

Minor: Heh, "events" is still plural even if <event.num> is 1. Feel free
to ignore (the current implementation might ease the postprocessing).

>        symtab.demangle(symbols, event.loc),
>        event.num,
>        event.alloc,
> diff --git a/tools/utils/symtab.lua b/tools/utils/symtab.lua
> index 03aadbd5..6cfa1065 100644
> --- a/tools/utils/symtab.lua
> +++ b/tools/utils/symtab.lua
> @@ -25,7 +25,8 @@ local function parse_sym_lfunc(reader, symtab)
>    local sym_line = reader:read_uleb128()
>  
>    symtab[sym_addr] = {
> -    name = string_format("%s:%d", sym_chunk, sym_line),
> +    name = sym_chunk,
> +    defined = sym_line,

Minor: Since you split "name" into two components -- file name and line
the function is defined -- it looks natural to me to use the same names
as <debug.getinfo> does: source + linedefined. Anyway, feel free to
ignore, since the naming you chose is also fine.

>    }
>  end
>  

<snipped>

> -- 
> 2.31.0
> 

-- 
Best regards,
IM

  reply	other threads:[~2021-03-26 20:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-26 16:48 Sergey Kaplun via Tarantool-patches
2021-03-26 20:33 ` Igor Munkin via Tarantool-patches [this message]
2021-03-29  9:46   ` Sergey Kaplun via Tarantool-patches
2021-03-29 11:16     ` Igor Munkin via Tarantool-patches
2021-03-29 13:00       ` Sergey Kaplun via Tarantool-patches
2021-03-29 15:41         ` Sergey Ostanevich via Tarantool-patches
2021-03-29 15:56           ` Sergey Kaplun via Tarantool-patches
2021-03-29 19:11         ` Igor Munkin via Tarantool-patches
2021-03-29 21:58 ` Igor Munkin via Tarantool-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210326203356.GJ29703@tarantool.org \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=imun@tarantool.org \
    --cc=skaplun@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH luajit] tools: make memprof parser output user-friendly' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox