Performance Improvements in .NET 10
Ускорение .NET 10
- JIT умеет инлайнить виртуальные вызовы и разворачивать цепочки интерфейсов; PGO по умолчанию.
- GC: меньше пауз, новые режимы Server & Dynamic Adaptation, утилизация памяти ↓15 %.
- BCL:
List<>,Dictionary<>,Span, RegEx, UTF8/JSON, LINQ быстрее в 1,2-3×; новые APIIndexOfAnyInRange,StringValues. - C# 14: встроенные буферы,
refполя в struct, vector-типы, zero-copy P/Invoke. - ASP.NET: 30 % RPS, 50 % latency; HTTP/3,
IHttpSysRequestTimingFeature, pooled H/3 connections. - MAUI: старты экранов в 2× быстрее, меньше аллокаций, AOT для Android/iOS.
- EF Core: компилируемые модели, pooled DB contexts, batching ↑40 %.
- Blazor WebAssembly: SIMD, AOT, сжатие IL + caching → 45 % меньше трафика.
- Серверные шаблоны: оптимизированные Docker-образы, ReadyToRun + AOT, меньше RAM.
- Инструменты: динамический профилировщик в VS,
dotnet trace --live, Perfetto, новые счётчики.
Комментарии (48)
- C# стремительно быстрее: LINQ ускорили в 300×, Native AOT догоняет Go, каждый мажор даёт –10–20 % CPU на 20 000 серверах.
- Всё это — благодаря «arena-» и escape-анализу, стековым структурам, ref’ам и другим приёмам, раньше доступным лишь в Rust/C++.
- Однако оптимизации не гарантированы: если код «не пройдёт borrow-checker», ускорения может не быть, а понять, где аллокации, всё труднее.
- Обновления .NET почти безболезненны: минуты работы и пара строк в CI, при этом старые API продолжают жить летами.
- Спорный момент — экосистема: кому-то кажется, что пакеты устаревают быстрее, чем в других языках; другие считают стабильность ASP.NET Core лучшей из виденных.
Show HN: Bolt – A super-fast, statically-typed scripting language written in C
bolt — компактный встраиваемый язык на C:
- высокая скорость, реал-тайм, статическая типизация
- целевые задачи: скрипты в играх, IoT, системы с ограниченными ресурсами
Основное
- репозиторий:
Beariish/bolt - лицензия: MIT
- компилятор ~150 КБ, зависимости отсутствуют
Возможности
- синтаксис C-подобный, сборка мусора без пауз
- FFI к C «из коробки»
- компиляция AOT/JIT, кроссплатформенность (x86, ARM, RISC-V)
Быстрый старт
git clone https://github.com/Beariish/bolt
cd bolt && make
./bolt examples/hello.bt
import std.io;
fn main() {
io.println("Привет, bolt!");
}
Комментарии (82)
- Пользователи одобрили идею быстрого статически типизированного скрипт-языка для встраивания, но сразу спутали «embedded» с «embedded-systems» и отметили отсутствие поддержки ARM/32-бит и отказ от целочисленных типов.
- Критика синтаксиса
import a, b from module: неудобен для автокомплита и повышает риск конфликтов имён; автор готов добавить псевдонимы. - Сомнения в заявленной скорости: несколько человек привели замеры, где Bolt проигрывает LuaJIT и даже обычной Lua 5.4.
- Подняты вопросы о полноте типовой системы (генерики, полиморфизм), отладке, LSP, сборке мусора и долгосрочной поддержке.
- Плюсы: понятный C/Python-подобный синтаксис, удобный Result-тип, потенциальная замена Lua в играх и редакторах.