[ruby-core:122646] [Ruby Bug#18733] Heavy GC allocations cause performance issue with Ractor
From:
"jhawthorn (John Hawthorn) via ruby-core" <ruby-core@...>
Date:
2025-07-03 00:05:08 UTC
List:
ruby-core #122646
SXNzdWUgIzE4NzMzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgamhhd3Rob3JuIChKb2huIEhhd3Rob3Ju KS4NCg0KU3ViamVjdCBjaGFuZ2VkIGZyb20gUnVieSBHQyBwcm9ibGVtcyBjYXVzZSBwZXJmb3Jt YW5jZSBpc3N1ZSB3aXRoIFJhY3RvciB0byBIZWF2eSBHQyBhbGxvY2F0aW9ucyBjYXVzZSBwZXJm b3JtYW5jZSBpc3N1ZSB3aXRoIFJhY3Rvcg0KDQpUaGlzIHBlcmZvcm1hbmNlIGdhcCBubyBsb25n ZXIgZXhpc3RzIG9uIG1hc3Rlci4gQmVuY2htYXJrIGZyb20gbXkgUnl6ZW4gNyAzNzAwWCBydW5u aW5nIGxpbnV4Og0KDQpgYGANCuKdryBydWJ5IC12DQpydWJ5IDMuNC40ICgyMDI1LTA1LTE0IHJl dmlzaW9uIGEzODUzMWZkM2YpICtQUklTTSBbeDg2XzY0LWxpbnV4XQ0KDQrina8gUlVCWV9NQVhf Q1BVPTE2IHJ1YnkgdGVzdC5yYg0KICAwLjAwMDAwMCAgIDAuMDAzODI3ICAxOS40MzQ0MDEgKCAg Mi40NTkxODcpDQp0ZXN0LnJiOjIwOiB3YXJuaW5nOiBSYWN0b3IgaXMgZXhwZXJpbWVudGFsLCBh bmQgdGhlIGJlaGF2aW9yIG1heSBjaGFuZ2UgaW4gZnV0dXJlIHZlcnNpb25zIG9mIFJ1YnkhIEFs c28gdGhlcmUgYXJlIG1hbnkgaW1wbGVtZW50YXRpb24gaXNzdWVzLg0KMTc2Ljk0OTg3NyAgIDAu MDA1MDgzIDE3Ni45NTQ5NjAgKCAyMi42NjM3NjcpDQpgYGANCg0KYGBgDQrina8gcnVieSAtdg0K cnVieSAzLjUuMGRldiAoMjAyNS0wNy0wMlQyMDowMToyNFogbWFzdGVyIGQ1ZjVhNTZiZjIpICtQ UklTTSBbeDg2XzY0LWxpbnV4XQ0KDQrina8gUlVCWV9NQVhfQ1BVPTE2IHJ1YnkgdGVzdC5yYg0K ICAwLjAwMDQ3NyAgIDAuMDAzNDY0ICAyMC4wODc4OTYgKCAgMi41MzI3MzApDQp0ZXN0LnJiOjIw OiB3YXJuaW5nOiBSYWN0b3IgaXMgZXhwZXJpbWVudGFsLCBhbmQgdGhlIGJlaGF2aW9yIG1heSBj aGFuZ2UgaW4gZnV0dXJlIHZlcnNpb25zIG9mIFJ1YnkhIEFsc28gdGhlcmUgYXJlIG1hbnkgaW1w bGVtZW50YXRpb24gaXNzdWVzLg0KIDIwLjI3MjQxNiAgIDAuMDAxNDAxICAyMC4yNzM4MTcgKCAg Mi41NzY0ODMpDQpgYGANCg0KSSBnZXQgc2ltaWxhciByZXN1bHRzIG9uIG15IE00IG1hY2Jvb2sg cHJvDQoNCkEgcGFydCBvZiB0aGlzIGlzIGJlY2F1c2UgYFswLDFdLmluY2x1ZGU/KHgpYCBubyBs b25nZXIgYWxsb2NhdGVzIChodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2NvbW1pdC8xZGQ0 MGVjMThhNTVmZjQ2ZjUyZDBiYTQ0ZmY1ZDc5MjNmNTdjMDhmKSwgYnV0IHRoYXQgd2FzIGFsc28g dGhlIGNhc2UgaW4gUnVieSAzLjQuDQoNCk1vZGlmeWluZyB0aGUgYmVuY2htYXJrIHRvIHVzZSBg WzAsMV0uaXRzZWxmLmluY2x1ZGU/KHgpYCB0byBhdm9pZCBlbGlkaW5nIHRoZSBBcnJheSB3ZSBj YW4gc3RpbGwgcmVwcm9kdWNlIHRoZSBvcmlnaW5hbCBpc3N1ZSwgdGhvdWdoIGl0J3MgY2xlYXIg d2UgYXJlIG1ha2luZyBwcm9ncmVzcy4NCg0KYGBgIHJ1YnkNCnJlcXVpcmUgJ2JlbmNobWFyaycN Cg0KZGVmIGZpYihuKQ0KICByZXR1cm4gbiBpZiBbMCwxXS5pdHNlbGYuaW5jbHVkZT8obikNCiAg ZmliKG4tMSkgKyBmaWIobi0yKQ0KZW5kDQoNCnRwID0gW10NCg0KcHV0cyBCZW5jaG1hcmsubWVh c3VyZSB7DQogIDgudGltZXMgZG8NCiAgICB0cCA8PCBmb3JrIHsgZmliKDM3KSB9DQogIGVuZA0K DQogIHRwLmVhY2ggeyB8dHwgUHJvY2Vzcy53YWl0KHQpIH0NCn0NCg0KcHV0cyBCZW5jaG1hcmsu bWVhc3VyZSB7DQogIDgudGltZXMubWFwIHsNCiAgICBSYWN0b3IubmV3IHsgZmliKDM3KSB9DQog IH0uZWFjaCgmOmpvaW4pDQp9DQpgYGANCg0KYGBgDQrina8gUlVCWV9NQVhfQ1BVPTE2IHJ1Ynkg dGVzdC5yYg0KICAwLjAwMDA0OCAgIDAuMDA0MDIwICA1My44NzUwNTIgKCAgNi44MTU3MTMpDQp0 ZXN0LnJiOjIwOiB3YXJuaW5nOiBSYWN0b3IgaXMgZXhwZXJpbWVudGFsLCBhbmQgdGhlIGJlaGF2 aW9yIG1heSBjaGFuZ2UgaW4gZnV0dXJlIHZlcnNpb25zIG9mIFJ1YnkhIEFsc28gdGhlcmUgYXJl IG1hbnkgaW1wbGVtZW50YXRpb24gaXNzdWVzLg0KMTIzLjY0MDY0NyAgMjcuNjU3MjI3IDE1MS4y OTc4NzQgKCA0Mi4zMDg1MzkpDQpgYGANCg0KSSd2ZSB1cGxvYWRlZCBhIHByb2ZpbGUgaGVyZSBo dHRwczovL3NoYXJlLmZpcmVmb3guZGV2LzQ0dzlhZFkuIFdlIGNhbiBzZWUgdGhhdCB0aGUgYWRk aXRpb25hbCB0aW1lIGlzIHNwZW50IGluIEdDIChzd2VlcGluZyBvciBqb2luaW5nIHRoZSBiYXJy aWVyIGZyb20gYSBHQyBzdGVwIGFub3RoZXIgUmFjdG9yIGluaXRpYXRlZCkNCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQnVnICMxODczMzogSGVhdnkgR0MgYWxs b2NhdGlvbnMgY2F1c2UgcGVyZm9ybWFuY2UgaXNzdWUgd2l0aCBSYWN0b3INCmh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODczMyNjaGFuZ2UtMTEzOTIyDQoNCiogQXV0aG9yOiBq YWtpdCAoSmFraXQgTGlhbmcpDQoqIFN0YXR1czogQXNzaWduZWQNCiogQXNzaWduZWU6IHJhY3Rv cg0KKiBydWJ5IC12OiBydWJ5IDMuMS4xcDE4ICgyMDIyLTAyLTE4IHJldmlzaW9uIDUzZjVmYzQy MzYpIFthcm02NC1kYXJ3aW4yMV0NCiogQmFja3BvcnQ6IDIuNzogVU5LTk9XTiwgMy4wOiBVTktO T1dOLCAzLjE6IFVOS05PV04NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCkNvZGU6DQoNCmBgYA0KcmVxdWlyZSAnYmVuY2htYXJrJw0KDQpkZWYgZmliKG4pDQogIHJl dHVybiBuIGlmIFswLDFdLmluY2x1ZGU/KG4pDQogIGZpYihuLTEpICsgZmliKG4tMikNCmVuZA0K DQp0cCA9IFtdDQoNCnB1dHMgQmVuY2htYXJrLm1lYXN1cmUgew0KICA4LnRpbWVzIGRvDQogICAg dHAgPDwgZm9yayB7IGZpYigzNykgfQ0KICBlbmQNCg0KICB0cC5lYWNoIHsgfHR8IFByb2Nlc3Mu d2FpdCh0KSB9DQp9DQoNCnB1dHMgQmVuY2htYXJrLm1lYXN1cmUgew0KICA4LnRpbWVzLm1hcCB7 DQogICAgUmFjdG9yLm5ldyB7IGZpYigzNykgfQ0KICB9LmVhY2h7IHxyfCByLnRha2UgfQ0KfQ0K YGBgDQoNClJlc3VsdDoNCg0KfEEgfEIgfA0KfC0tfC0tfA0KfCBmb3JrIHwgMC4wMDAyNjQgICAw LjAwMzQzOSAgODcuMTgxMTk4ICggMTEuMjExMzQ5KSB8DQp8IFJhY3RvciB8IDgwLjI5MjkxNiAg MTUuMDYyNTU5ICA5NS4zNTU0NzUgKCAzOS41Njk1MjcpIHwNCg0KQW5kIEkgZm91bmQgdGhhdCBo ZXJlJ3MgdGhlIHByb2JsZW0gc2hvd2luZyBvbiB0aGUgQWN0aXZlTW9uaXRvci5hcHA6DQoNCiFb cnVieV9idWdfd2l0aF9tMV0oaHR0cDovL2pha2l0LmNuL3NjcmVlbl9zaG90X3J1YnlfYnVnLmpw ZykNCg0KQXMgeW91IGNhbiBzZWUsIHRoZSBwcm9jZXNzIG9mIHJ1YnkgaXMgYWx3YXlzIHVzaW5n IGFsbCBQZXJmb3JtYW5jZSBDb3JlcyBvbiBteSBBcHBsZSBNMSBNYWMuDQoNCkJ1dCB0aGVyZSdz IG5vIG9uZSBvZiB0aGUgRWZmaWNpZW5jeSBDb3JlcyB3YXMgaW4gdXNlZCBieSBydWJ5IFJhY3Rv ci4NCg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxp c3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4g ZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZv IC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwu cnVieS1sYW5nLm9yZy8K