From: Oleg Babin via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: v.shpilevoy@tarantool.org, imun@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH v2 0/3] fiber: keep reference to userdata if fiber created once Date: Thu, 2 Sep 2021 21:13:28 +0300 [thread overview] Message-ID: <cover.1630606077.git.babinoleg@mail.ru> (raw) From: Oleg Babin <babinoleg@mail.ru> This patch reworks approach to fiber management in Lua. Before this patch each action that should return fiber led to new userdata creation that was quite slow and made GC suffer. This patch introduces new field in struct fiber to store a reference to userdata that was created once for a fiber. It allows speedup operations as fiber.self() and fiber.id(). Simple benchmark shows that access to fiber storage is faster in two times, fiber.find() - 2-3 times and fiber.new/create functions don't have any changes. Initially changes were inspired by #6210 [1] but current patchset doesn't introduce anything new just improves performance of existing functions. Some results are available also in related github PR [2]. [1] https://github.com/tarantool/tarantool/issues/6210 [2] https://github.com/tarantool/tarantool/pull/6280 Changes in v2: - Review fixes by Vlad and Igor - The patch patch that introduced mempool usage is discarded Oleg Babin (3): fiber: rename ref to storage_ref fiber: pass struct fiber into lbox_pushfiber instead of id fiber: keep reference to userdata if fiber created once src/lib/core/fiber.c | 5 ++ src/lib/core/fiber.h | 7 ++- src/lua/fiber.c | 124 ++++++++++++++----------------------------- 3 files changed, 51 insertions(+), 85 deletions(-) -- 2.32.0
next reply other threads:[~2021-09-02 18:13 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-02 18:13 Oleg Babin via Tarantool-patches [this message] 2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 1/3] fiber: rename ref to storage_ref Oleg Babin via Tarantool-patches 2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 2/3] fiber: pass struct fiber into lbox_pushfiber instead of id Oleg Babin via Tarantool-patches 2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 3/3] fiber: keep reference to userdata if fiber created once Oleg Babin via Tarantool-patches 2021-09-02 19:47 ` Oleg Babin via Tarantool-patches 2021-09-03 12:23 ` Igor Munkin via Tarantool-patches 2021-09-03 20:48 ` Oleg Babin via Tarantool-patches 2021-09-05 15:07 ` Vladislav Shpilevoy 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.1630606077.git.babinoleg@mail.ru \ --to=tarantool-patches@dev.tarantool.org \ --cc=imun@tarantool.org \ --cc=olegrok@tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 0/3] fiber: keep reference to userdata if fiber created once' \ /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