From: Maxim Kokryashkin via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: tarantool-patches@dev.tarantool.org, skaplun@tarantool.org, imun@tarantool.org Subject: [Tarantool-patches] [PATCH luajit v3 0/4] sysprof: parser refactoring Date: Mon, 31 Jul 2023 23:30:02 +0300 [thread overview] Message-ID: <cover.1690834846.git.m.kokryashkin@tarantool.org> (raw) This patchset is targeted at reducing the memory footprint of the sysprof parser. It is mainly achieved by fixing a nasty bug in the AVL tree implementation, which caused most of the memory consumption, and by essentially purging the collapse.lua module, which means that there is no need to store the complete information about every parsed event and it is sufficient to merge stacks inplace. Alongside with described changes two minor improvements were done: - `luajit-parse-sysprof` now has permissions to be executed - `split_by_vmstate` option is purged, because no one uses it, so there is no actual reason to maintain it. ## Note for Igor: There is no way to split the 'memory footprint reduction'-part and the 'collapse.lua purge'-part, since the main reason why memory consumption is so much lower now, other the AVL-tree bug, is that we don't need to pass a complete profile information between the `parse.lua` and `collapse.lua`. That, basically, almost turns the profile parsing process into some kind of stream-based procedure. PR: https://github.com/tarantool/tarantool/pull/8703 Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-8700-sysprof-parser-refactoring Maxim Kokryashkin (4): utils: remove unnecessary insertion in AVL-tree sysprof: remove `split by vmstate` option tools: add execution permission to sysprof parser sysprof: improve parser's memory footprint .../gh-5813-resolving-of-c-symbols.test.lua | 6 +- tools/CMakeLists.txt | 4 + tools/luajit-parse-sysprof.in | 0 tools/sysprof.lua | 28 +--- tools/sysprof/collapse.lua | 127 +----------------- tools/sysprof/parse.lua | 126 ++++++++++++----- tools/utils/avl.lua | 4 +- tools/utils/symtab.lua | 2 +- 8 files changed, 106 insertions(+), 191 deletions(-) mode change 100644 => 100755 tools/luajit-parse-sysprof.in -- 2.41.0
next reply other threads:[~2023-07-31 20:30 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-07-31 20:30 Maxim Kokryashkin via Tarantool-patches [this message] 2023-07-31 20:30 ` [Tarantool-patches] [PATCH luajit v3 1/4] utils: remove unnecessary insertion in AVL-tree Maxim Kokryashkin via Tarantool-patches 2023-08-15 18:50 ` Igor Munkin via Tarantool-patches 2023-07-31 20:30 ` [Tarantool-patches] [PATCH luajit v3 2/4] sysprof: remove `split by vmstate` option Maxim Kokryashkin via Tarantool-patches 2023-08-15 18:51 ` Igor Munkin via Tarantool-patches 2023-07-31 20:30 ` [Tarantool-patches] [PATCH luajit v3 3/4] tools: add execution permission to sysprof parser Maxim Kokryashkin via Tarantool-patches 2023-08-15 18:51 ` Igor Munkin via Tarantool-patches 2023-07-31 20:30 ` [Tarantool-patches] [PATCH luajit v3 4/4] sysprof: improve parser's memory footprint Maxim Kokryashkin via Tarantool-patches 2023-08-15 18:52 ` Igor Munkin via Tarantool-patches 2023-08-15 18:54 ` [Tarantool-patches] [PATCH luajit v3 0/4] sysprof: parser refactoring 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=cover.1690834846.git.m.kokryashkin@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=imun@tarantool.org \ --cc=max.kokryashkin@gmail.com \ --cc=skaplun@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH luajit v3 0/4] sysprof: parser refactoring' \ /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