NIXSolutions: Что интересного происходило в 2021 году с .NET

В мире .NET-разработок за прошлый 2021 год произошло немало изменений. Разработчики назвали самые важные нововведения.

NIX Solutions, NIXsolutions,

Память

Представления объектов в памяти коснулись следующие изменения:

  • Pipelines сокращает копирование информации на отдельных этапах обработок запросов HTTP;
  • Span уменьшает количество аллокаций и предотвращает в некоторых случаях создание копий памяти;
  • в отдельных местах выделение определённых объектов заменено на их пул: подготовленные или ранее обозначенные элементы могут применяться многократно.

Компилятор JIT

В сфере JIT проведена огромная работа, которая повысила производительность. Многочисленные усовершенствования затронули AVX, Intrinsics и SIMD. Компилятор может заменять общие архитектурные процессорные инструкции персональными, учитывающими особенности устройств.

Такие обновлённые инструкции основываются на принципе Single Instruction. Ранее они использовались лишь в трёхмерных графических объектах, звуковой обработке, изменениях изображений – там, где в ходе одной операции идентично обрабатывались числа в табличном формате. Но таким же способом можно обрабатывать и текстовый контент.

Profile-guided optimization

Оптимизации компилятором JIT выполняются по фазам. И он может принять решение о перекомпиляции кода буквально на ходу, учтя профиль нагрузки. Отдельный метод может вызываться с определённой периодичностью по тем или иным данным, и его логично компилировать с учётом нюансов использования. Но возможным это станет спустя некоторый период функционирования программы. Полезную информацию можно сохранить, систематизировать и использовать для улучшенного результата при последующих запусках. Также данные возможно применять в кластере на других устройствах.

Inline

Такой формат предполагает замену невиртуального вызова метода процессорными инструкциями, входящими в метод. Размещение инструкций рядом и избавление от лишних переходов позволяет улучшать cache locality и использовать собственные процессорные оптимизации. Такие инструменты помогают процессору работать максимально продуктивно и бесперебойно.

Devirtualization

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

Visual Studio 2022

Наконец, этот процесс стал 64-битным, что открыло множество возможностей для разработчиков. Теперь можно максимально продуктивно работать с системными ресурсами и сложными решениями, в том числе включающими сотни разных проектов. Это удобно.

Minimal API и C# 10

Hello, World! упростился до единственной строчки. А на ASP.NET Core минимальные объёмы кода приложения уменьшились до одного файла с 4 строками. Платформа .NET новичками теперь воспринимается более дружелюбной.

.NET 6 и M1

У платформы появилась поддержка Arm64, в том числе касаемо процессоров на базе macOS. И интерес к данной архитектуре ежегодно растёт, поэтому её усовершенствование однозначно полезно.

Ahead of Time – новая компиляция

В течение длительного периода язык JavaScript был единственным, на котором можно было создавать бэкенды и фронтенды для приложений с определённым количеством общей базы кодов между ними. Теперь делать это реально и на платформе .NET.

Релиз последней вариации .NET 6 открыл возможность поддержки компиляции AoT для всего кода программы, включая написанный непосредственно разработчиком. Такая технология стала довольно интересной.

Hot Reload

Функция предоставляет возможность «горячих перезагрузок». То есть вносить корректировки в программу можно непосредственно во время написания её кода, не перезагружая и просматривая результаты сразу. Причём данная опция компанией Майкрософт была исключена из открытого доступа, а потом возвращена после бунта интернет-сообщества.

NativeMemory

Это нововведение в .NET, предполагающее нативное выделение памяти, может делать платформу более гибкой и универсальной. Но если память управляется в автоматическом режиме, то целый ряд кейсов закрывается. Так что перед использованием этой возможности нужно всё проанализировать.

MAUI

Это фреймворк кроссплатформенного типа для разработки приложений. Что это даёт? Создав программу на C#, можно легко перевести её на любую другую операционную систему, например, на Линукс, Windows, Андроид или macOS.

Хотите использовать все возможности .NET или нуждаетесь в рабочем мобильном приложении? Обратитесь за помощью или за разработкой программы под ключ в команду NIXSolutions. Эти специалисты успешно консультируют, создают приложения и ПО, а также предлагают удалённое администрирование, консалтинг и IT-аутсорсинг. На NIXSolutions reviews вы найдёте все подробности плодотворного сотрудничества.