Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 31, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

peterzhu2118 and others added 4 commits December 31, 2025 14:22
This commit allows objects that are safe to be freed in parallel to do so.
A decrease in object freeing time can be seen in profiles.

The benchmarks don't show much difference.

Before:

--------------  --------------------  ----------  ---------
bench           sequential free (ms)  stddev (%)  RSS (MiB)
activerecord    242.3                 7.4         84.3
chunky-png      439.1                 0.6         75.6
erubi-rails     1221.2                4.2         132.7
hexapdf         1544.8                1.8         429.1
liquid-c        42.7                  7.4         48.5
liquid-compile  41.4                  8.3         52.2
liquid-render   100.6                 3.0         56.8
mail            108.9                 2.1         65.1
psych-load      1536.9                0.6         43.4
railsbench      1633.5                2.6         146.2
rubocop         126.5                 15.8        142.1
ruby-lsp        129.6                 9.7         112.2
sequel          47.9                  6.5         44.6
shipit          1152.0                2.7         315.2
--------------  --------------------  ----------  ---------

After:

--------------  ------------------  ----------  ---------
bench           parallel free (ms)  stddev (%)  RSS (MiB)
activerecord    235.1               5.5         87.4
chunky-png      440.8               0.8         68.1
erubi-rails     1105.3              0.8         128.0
hexapdf         1578.3              4.1         405.1
liquid-c        42.6                7.1         48.4
liquid-compile  41.5                8.1         52.1
liquid-render   101.2               2.8         53.3
mail            109.7               2.7         64.8
psych-load      1567.7              1.1         44.4
railsbench      1644.9              1.9         150.9
rubocop         125.6               15.4        148.5
ruby-lsp        127.9               5.8         104.6
sequel          48.2                6.1         44.1
shipit          1215.3              4.7         320.5
--------------  ------------------  ----------  ---------

ruby/mmtk@4f0b5fd2eb
This makes it easier to visualize in profilers which one is non-parallel.

ruby/mmtk@ba68b2ef3b
The argument to `is_data_encoding` is assumed to be `T_DATA`.
It sometimes pins itself when it is in the overloaded_cme table.
@pull pull bot locked and limited conversation to collaborators Dec 31, 2025
@pull pull bot added the ⤵️ pull label Dec 31, 2025
@pull pull bot merged commit 7cf6cc8 into turkdevops:master Dec 31, 2025
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants