Как я могу узнать, кто заморозил (не буквальную) строку Ruby? - PullRequest
2 голосов
/ 06 марта 2019

Я отлаживаю утечку памяти в большом приложении Rails, и, просмотрев дамп кучи, я обнаружил, что причина заключается во многих замороженных строках, которые являются данными и не должны были быть заморожены.

Содержимоестроки позволяют легко найти, где они были созданы, но я не знаю, какой код отвечает за их замораживание.Я мог бы покопаться и найти его в конце концов, но теперь мне действительно интересно узнать, кто отвечает за замораживание определенных строк в куче.

Исправление обезьян String#freeze ничего не выявило.

Есть предложения по выяснению, где / почему произошло замораживание?Я не возражаю исправлять саму Ruby и увеличивать rb_str_freeze или rb_obj_freeze, если придется.Я могу нацелить проблемные строки, посмотрев на первые 40 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...