Станислав Сидристый «Делаем zero-allocation код на примере оптимизации крупной библиотеки»

preview_player
Показать описание
Иногда возникают ситуации, когда код написан хорошо и стабильно. И кода этого очень много: переписывать будет крайне тяжело. Еще в этом коде есть проблема: он выделяет очень много памяти. Память выделяется и освобождается ввиду возросшей нагрузки и как результат — GC молотит на полную катушку.

На примере библиотеки SMBLibrary мы попробуем свести выделения памяти к минимуму, используя ряд выработанных техник, и увидим, насколько тяжелыми могут быть самые простейшие операции.

Рекомендации по теме
Комментарии
Автор

Ссылки в описании под видео.
Как говорится - подписываемся, ставим лайки, делимся видео.
Помогаем распространению .NET и оптимизированного кода в массах. :)

DotNetRu
Автор

Спасибо за доклад. Не все, как я вижу, понимают проблему с жором памяти, особенно при работе с файлами, это когда не аватарку загрузить, а например, принять и обработать 40 000 документов за раз, или при нагрузке в десяток документов в секунду. Очень нетривиальная тема, там знания отличий gc0 от gc1 уже не достаточно. Ещё раз спасибо.

zodchiygigas
Автор

Классный доклад. Поначалу показался скучным, а потом автор дал жару) Обсуждение тоже довольно продуктивное.

AlexeyLopatin-mr
Автор

Что же делать, что это всё получилось - перейти на дотнет 7). (шутка). Классный доклад.

artursveshnikov
Автор

Любопытно. И вполне верю, что конкретно в этом случае это помогло.
Но как часто два месяца работы высокооплачиваемого разработчика (+ затраты на сопровождение) будут стоить дешевле, чем память и cpu?

freedom_is_the_power
Автор

Может имеет смысл использовать Rust вместо того, чтобы городить сиху внутри шарпа

tkjyxrb
Автор

Масса лишних слов, практически трата времени

bananasba