Skip to content

[6.40] [http] use more efficient TMethodCall invocation#22558

Merged
linev merged 2 commits into
root-project:v6-40-00-patchesfrom
linev:http_exejson_640
Jun 11, 2026
Merged

[6.40] [http] use more efficient TMethodCall invocation#22558
linev merged 2 commits into
root-project:v6-40-00-patchesfrom
linev:http_exejson_640

Conversation

@linev

@linev linev commented Jun 10, 2026

Copy link
Copy Markdown
Member

Backport of #22549

linev added 2 commits June 10, 2026 11:09
When processing exe.json request, TMethodCall is used to invoke object method.
Before all method arguments were packed into one string and provided
as TMethodCall constructor. Main problem - interpreter involved every time
and this leads to memory leak. Plus issue with escape symbols.

Try to use different signature of TMethodCall::Execute where arguments
parsed and stored as plain vector of pointers on these arguments.
Such signature does not invoke interpreter and should avoid memory leak
When exe.json executed for same method many times create TMethodCall once
and reuse it. Should significantly reduce memory fragmentation from cling and
probably avoid memory leaks.
@linev linev self-assigned this Jun 10, 2026
@linev linev added this to the 6.40.02 milestone Jun 10, 2026
@github-actions

Copy link
Copy Markdown

Test Results

    22 files      22 suites   3d 14h 51m 32s ⏱️
 3 855 tests  3 822 ✅ 0 💤 33 ❌
77 048 runs  77 015 ✅ 0 💤 33 ❌

For more details on these failures, see this check.

Results for commit e81d1b3.

@linev linev modified the milestones: 6.40.02, 6.40.04 Jun 11, 2026
@linev linev merged commit efe3e59 into root-project:v6-40-00-patches Jun 11, 2026
37 of 41 checks passed
@linev linev deleted the http_exejson_640 branch June 11, 2026 11:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant