[Tarantool-patches] [PATCH luajit v2 0/3] memprof: add demangling capabilities for C functions

Максим Корякшин m.kokryashkin at tarantool.org
Wed Aug 25 13:01:07 MSK 2021


So here are the benchmark results, and they are surprising.
It turns out that dumping all symbols from all shared objects  is 
actually much faster than dumping only the name and address  of
each shared object.
 
==========================================================
tested script:
  package.cpath = "./?.so"
  require "hello"
  for j=1,1e3 do
    misc.memprof.start('./memprof.test')
    misc.memprof.stop()
  end
----------------------------------------------------------
vanilla:
  0,03s user 0,05s system 50% cpu 0,158 total
  0,01s user 0,04s system 88% cpu 0,051 total
  0,01s user 0,05s system 79% cpu 0,071 total
  avg total: 0.093
  avg total per memprof.start/stop: 9.3e-5
  performance relative to vanilla: x1
----------------------------------------------------------
dump only shared objects addresses and names:
  18,83s user 0,36s system 99% cpu 19,285 total
  19,15s user 0,35s system 99% cpu 19,586 total
  18,75s user 0,39s system 99% cpu 19,244 total
  avg total: 19.371
  avg total per memprof.start/stop: 0.019
  performance relative to vanilla: x208.29
----------------------------------------------------------
dump all symbols:
  0,30s user 0,10s system 75% cpu 0,519 total
  0,41s user 0,20s system 52% cpu 1,173 total
  0,31s user 0,08s system 73% cpu 0,531 total
  avg total: 0.741
  avg total per memprof.start/stop: 7.4e-4
  performance relative to vanilla: x7.96
==========================================================
 
Best regards,
Maxim Kokryashkin
  
>Friday, 20.08.21Maxim Kokryashkin <max.kokryashkin at gmail.com>:
> 
>Changes in v2:
>  - Fixed comments as per review by Sergey
>
>
>Maxim Kokryashkin (3):
>  utils: add CRC32 hash implementation
>  memprof: extend symtab with information about .so libs
>  memprof: update memprof parser
>
> CMakeLists.txt | 2 +
> src/CMakeLists.txt | 1 +
> src/Makefile.dep.original | 3 +-
> src/Makefile.original | 2 +-
> src/lj_memprof.c | 60 +++++++++
> src/lj_memprof.h | 3 +-
> src/lj_utils.h | 29 +++++
> src/lj_utils_hash.c | 110 +++++++++++++++++
> src/ljamalg.c | 1 +
> .../misclib-memprof-lapi.test.lua | 5 +-
> tools/CMakeLists.txt | 2 +
> tools/utils/hash.lua | 99 +++++++++++++++
> tools/utils/symtab.lua | 114 +++++++++++++++++-
> 13 files changed, 420 insertions(+), 11 deletions(-)
> create mode 100644 src/lj_utils_hash.c
> create mode 100644 tools/utils/hash.lua
>
>---
>Github branch:  https://github.com/tarantool/luajit/tree/fckxorg/gh-5813-demangling-of-c-symbols
>Issue:  https://github.com/tarantool/tarantool/issues/5813
>
>2.32.0
> 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20210825/95cbc718/attachment.htm>


More information about the Tarantool-patches mailing list