[#113756] [Ruby master Bug#19711] NoMethodError "private method `new' called for class" since bebd05fb51ea65bc57344b67100748200f8311eb — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

Issue #19711 has been reported by yahonda (Yasuo Honda).

7 messages 2023/06/05

[#113771] [Ruby master Feature#19712] IO#reopen removes singleton class — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19712 has been reported by itarato (Peter Arato).

11 messages 2023/06/05

[#113782] [Ruby master Bug#19716] SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc) — "alexdowad (Alex Dowad) via ruby-core" <ruby-core@...>

Issue #19716 has been reported by alexdowad (Alex Dowad).

6 messages 2023/06/07

[#113788] [Ruby master Bug#19717] `ConditionVariable#signal` is not fair when the wakeup is consistently spurious. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19717 has been reported by ioquatix (Samuel Williams).

13 messages 2023/06/07

[#113819] [Ruby master Feature#19720] Warning for non-linear Regexps — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #19720 has been reported by Eregon (Benoit Daloze).

11 messages 2023/06/08

[#113835] [Ruby master Misc#19722] DevMeeting-2023-07-13 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #19722 has been reported by mame (Yusuke Endoh).

9 messages 2023/06/09

[#113944] [Ruby master Feature#19737] Add `IO::Buffer#cat` for concat `IO::Buffer` instances — "unasuke (Yusuke Nakamura) via ruby-core" <ruby-core@...>

Issue #19737 has been reported by unasuke (Yusuke Nakamura).

7 messages 2023/06/19

[#113953] [Ruby master Bug#19739] Key cannot be found in a Hash when slice! method is applied to the key — "ilya.andreyuk (Ilya Andreyuk) via ruby-core" <ruby-core@...>

Issue #19739 has been reported by ilya.andreyuk (Ilya Andreyuk).

9 messages 2023/06/20

[#113966] [Ruby master Bug#19742] Introduce `Module#anonymous?` — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19742 has been reported by ioquatix (Samuel Williams).

47 messages 2023/06/21

[#114025] [Ruby master Feature#19744] Namespace on read — "tagomoris (Satoshi TAGOMORI) via ruby-core" <ruby-core@...>

Issue #19744 has been reported by tagomoris (Satoshi TAGOMORI).

71 messages 2023/06/27

[#114032] [Ruby master Misc#19747] Propose Kevin Newton and Jemma Issroff as core committers — "k0kubun (Takashi Kokubun) via ruby-core" <ruby-core@...>

Issue #19747 has been reported by k0kubun (Takashi Kokubun).

8 messages 2023/06/28

[#114038] [Ruby master Bug#19749] Confirm correct behaviour when attaching private method with `#define_method` — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19749 has been reported by itarato (Peter Arato).

15 messages 2023/06/28

[ruby-core:113899] [Ruby master Feature#19730] Remove transient heap

From: "peterzhu2118 (Peter Zhu) via ruby-core" <ruby-core@...>
Date: 2023-06-13 20:21:05 UTC
List: ruby-core #113899
Issue #19730 has been reported by peterzhu2118 (Peter Zhu).

----------------------------------------
Feature #19730: Remove transient heap
https://bugs.ruby-lang.org/issues/19730

* Author: peterzhu2118 (Peter Zhu)
* Status: Open
* Priority: Normal
----------------------------------------
GitHub PR: https://github.com/ruby/ruby/pull/7942

I'm proposing to remove the transient heap because Variable Width Allocation now supports all the types that were on the transient heap.

Arrays, objects, hashes, and structs were on the transient heap. After Variable Width Allocation:

- Arrays: allocated on the transient heap for very large arrays (>78 elements) or when elements are added and is too big for embedded.
- Objects: allocated on the transient heap for very large objects (>78 instance variables) or when new instance variables are added and is too big for embedded. However, classes store an estimate of the number of instance variables objects will have, which means that objects are usually allocated with the correct capacity.
- Hashes: no longer on the transient heap.
- Structs: allocated on the transient heap for very large structs (>78 elements).

As such, the cases where allocations are on the transient heap become rarer and thus no longer provide the performance benefits it once did. This is supported by the benchmark results below, where we see no performance change with the transient heap removed. However, we do see around a 5-10% decrease in memory usage for most benchmarks.


```
--------------  -----------  ----------  ---------  ----------------------  ----------  ---------  -------------------------  ------------------------
bench           master (ms)  stddev (%)  RSS (MiB)  no transient heap (ms)  stddev (%)  RSS (MiB)  no transient heap 1st itr  master/no transient heap
activerecord    71.9         2.4         58.2       71.9                    2.2         53.4       1.00                       1.00
chunky_png      822.7        0.2         45.7       837.0                   0.2         47.4       0.98                       0.98
erubi_rails     20.5         13.5        95.1       20.3                    13.3        90.6       1.00                       1.01
hexapdf         2525.8       0.7         173.1      2546.9                  0.8         162.4      1.00                       0.99
liquid-c        66.2         0.8         38.4       65.9                    0.2         34.3       1.01                       1.00
liquid-compile  60.2         1.7         36.6       60.4                    1.4         32.6       1.02                       1.00
liquid-render   165.0        0.2         37.2       164.7                   0.2         33.1       1.01                       1.00
mail            138.4        0.1         50.4       136.6                   0.2         46.5       1.03                       1.01
optcarrot       5232.2       0.7         62.9       5151.2                  0.7         58.6       1.00                       1.02
psych-load      2082.8       0.1         37.1       2059.4                  0.1         32.2       1.01                       1.01
railsbench      2066.2       0.1         103.6      2051.7                  0.4         99.3       1.01                       1.01
ruby-lsp        6.4          6.5         45.8       6.4                     6.2         41.4       1.01                       0.99
sequel          73.0         1.1         40.5       73.1                    1.0         36.1       1.00                       1.00
--------------  -----------  ----------  ---------  ----------------------  ----------  ---------  -------------------------  ------------------------
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

In This Thread

Prev Next