#escape_analysis — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #escape_analysis, aggregated by home.social.
-
Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет
Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах. Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы. Будет три истории, и все три про foreach:
https://habr.com/ru/articles/1058160/
#benchmarkdotnet #foreach #boxing #аллокации #GC #JIT #escape_analysis #NET_10 #производительность #SortedList
-
Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет
Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах. Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы. Будет три истории, и все три про foreach:
https://habr.com/ru/articles/1058160/
#benchmarkdotnet #foreach #boxing #аллокации #GC #JIT #escape_analysis #NET_10 #производительность #SortedList
-
Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет
Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах. Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы. Будет три истории, и все три про foreach:
https://habr.com/ru/articles/1058160/
#benchmarkdotnet #foreach #boxing #аллокации #GC #JIT #escape_analysis #NET_10 #производительность #SortedList
-
Конкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен генерировать сотни мегабайт мусора в секунду - даже если сам результат никому не нужен. И казалось бы, проблема конкатенации строк в Java давно решена. Джунам говорят: используй StringBuilder и будет тебе щастье. А статьи десятилетней давности сравнивают + и append() в бенчмарках и ставят точку. В сегодняшней статье я копнул немного глубже и оказалось, что реальность сложнее. Вред не исчез - он принял новые, менее очевидные формы. Заглянуть
https://habr.com/ru/articles/1031336/
#конкатенация_строк #stringbuilder #invokedynamic #stringconcatfactory #escape_analysis #аллокации_памяти #сборщик_мусора_gc #String_Templates #java #jvm
-
Конкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен генерировать сотни мегабайт мусора в секунду - даже если сам результат никому не нужен. И казалось бы, проблема конкатенации строк в Java давно решена. Джунам говорят: используй StringBuilder и будет тебе щастье. А статьи десятилетней давности сравнивают + и append() в бенчмарках и ставят точку. В сегодняшней статье я копнул немного глубже и оказалось, что реальность сложнее. Вред не исчез - он принял новые, менее очевидные формы. Заглянуть
https://habr.com/ru/articles/1031336/
#конкатенация_строк #stringbuilder #invokedynamic #stringconcatfactory #escape_analysis #аллокации_памяти #сборщик_мусора_gc #String_Templates #java #jvm
-
Конкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен генерировать сотни мегабайт мусора в секунду - даже если сам результат никому не нужен. И казалось бы, проблема конкатенации строк в Java давно решена. Джунам говорят: используй StringBuilder и будет тебе щастье. А статьи десятилетней давности сравнивают + и append() в бенчмарках и ставят точку. В сегодняшней статье я копнул немного глубже и оказалось, что реальность сложнее. Вред не исчез - он принял новые, менее очевидные формы. Заглянуть
https://habr.com/ru/articles/1031336/
#конкатенация_строк #stringbuilder #invokedynamic #stringconcatfactory #escape_analysis #аллокации_памяти #сборщик_мусора_gc #String_Templates #java #jvm