Pull to refresh
27
0

👇 Пишу про .NET на своём канале

Send message

Пулы объектов в C#: примеры, устройство и производительность

Level of difficultyMedium
Reading time6 min
Views9.1K

Пул объектов (Object Pool) — это паттерн, который позволяет повторно использовать объекты вместо создания новых. Это может быть полезно в ситуациях, когда инициализация объектов затратна. Паттерн широко применяется в разработке игр и приложениях, где важно минимизировать использование памяти. В этой статье мы рассмотрим, как этот шаблон реализован в C#, и как он может улучшить производительность.

Читать далее

Заглядываем под капот FrozenDictionary: насколько он быстрее Dictionary и почему

Level of difficultyMedium
Reading time9 min
Views14K

С релизом .NET 8 в арсенале C# разработчиков появилась новая коллекция – FrozenDictionary. Особенность этого словаря в том, что он неизменяемый, но при этом обеспечивает более быстрое чтение по сравнению с обычным Dictionary. Я неспроста разбил результаты на обложке по типам – используемые во FrozenDictionary алгоритмы сильно зависят от типа ключа, размера словаря или даже, например, количества строковых ключей одинаковой длины. В этой статье подробно разберем, насколько FrozenDictionary быстрее и почему.

Заглянуть под капот

Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal

Level of difficultyEasy
Reading time5 min
Views10K

Если вы C# разработчик, то наверняка вам знаком класс Dictionary. В качестве значений вы, скорее всего, использовали классы. Но что если я скажу, что в Dictionary можно использовать структуры? Не стоит бояться того, что структуры копируются при передаче в метод или возврате из него. Есть способ этого избежать, и это работает быстро.

Узнать как

Как в C# быстро извлечь подстроку

Level of difficultyEasy
Reading time4 min
Views11K

Извлечение подстроки. Казалось бы, что тут может быть сложного? В любом современном языке программирования это можно сделать через функцию substring или через slicing. За время работы C# разработчиком я повидал разный код, в том числе разные способы извлечения подстроки. В этой статье мы рассмотрим самые распространённые из них, сделаем замеры производительности и проанализируем результаты.

Читать далее

Правило 16 байт: развенчиваем миф о производительности структур в C#

Level of difficultyMedium
Reading time4 min
Views15K

По умолчанию, при передаче в метод или при возврате из метода, экземпляры значимых типов копируются, когда как экземпляры ссылочных типов передаются по ссылке. В 2008 году была выпущена книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries»‎. В этой книге рекомендовалось не использовать структуры размером больше 16 байт, поскольку, очевидно, структуры большего размера копируются медленнее. Несмотря на то, что прошло уже 16 лет, в сообществе C# разработчиков до сих пор популярно мнение, что производительность структур размером больше 16 байт хуже. Даже Google на запрос «recommended structure size c#» говорит, что это не более 16 байт. В этой статье мы попробуем докопаться до правды.

Читать далее

Information

Rating
Does not participate
Location
Сербия
Registered
Activity

Specialization

Backend Developer
C#
Entity Framework
.NET Core
SQL
DDD
OOP
TypeScript
React
HTML
CSS