TGViewer
Анонимный дотнетчик Анонимный дотнетчик @dotnetter · 1.8K subscribers
Post #9903 463
[Перевод] Безопасные операции zero-copy на C#

C# — гибкий язык. На нём можно писать мобильные и десктопные приложения, игры, веб-сайты, сервисы и API. Можно писать на нём, как на Java, со всеми абстракциями и AbstractionFactoryClassProvider. Но, в отличие от Java, на нём также можно писать низкоуровневый и небезопасный код. И когда я говорю о низкоуровневом, то имею в виду отсутствие сборщика мусора и сырые указатели.
Низкоуровневый код обычно требуется для высокой производительности или взаимодействия с библиотеками C/операционной системой. Низкоуровневый код помогает повысить производительность благодаря тому, что с его помощью можно избавиться от проверок доступа к памяти в среде исполнения.
Для безопасности доступ к элементам массивов выполняется в C# с проверкой границ. Но из-за этого страдает производительность, если только, конечно, компилятор не сможет избавиться от операции проверки границ. Логика устранения проверок границ должна гарантировать, что проверка границ индекса массива уже выполнялась раньше или что во время компиляции индекс точно будет находиться в границах. Для примера возьмём простую функцию:
Читать далее

https://habr.com/ru/articles/952568/?utm_campaign=952568&utm_source=habrahabr&utm_medium=rss
Хабр Безопасные операции zero-copy на C# C# — гибкий язык. На нём можно писать мобильные и десктопные приложения, игры, веб-сайты, сервисы и API. Можно писать на нём, как на Java, со всеми абстракциями и AbstractionFactoryClassProvider . Но,...
More from @dotnetter
  1. Oct 14, 2025.NET and .NET Framework October 2025 servicing releases updates A recap of the latest serv…
  2. Oct 14, 2025Announcing .NET 10 Release Candidate 2 .NET 10 Release Candidate 2 focuses on final qualit…
  3. Oct 14, 2025Announcing the .NET Security Group Learn how to join the .NET Security Group for early acc…
  4. Oct 14, 2025Выбор языка программирования для создание более трудных проектов: как сделать правильный в…
  5. Oct 13, 2025Система резервации на 600 заказов в секунду без буферизации и другой дичи Я прочитал стать…
  6. Oct 13, 2025Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика Введение Вс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →