Веб-версияОткрыть в Telegram
CC#

C#

@csharp_cplus · группа · Технологии · в индексе с 2026-05-24
3 507участников−9 за неделю
59пишущих за 30 дней
353сообщений за 30 дней
149 475сообщений в индексе
Вся ветка · 8 ответов →
  1. せ
    ну с помощью этого говнокода пойми using System; class Program { static void Main() { A mainA = new A(1); Console.WriteLine($"A: {mainA.Value}, B: {mainA.b.Value}"); } } class A { public int Value; public B b; Random rnd = new Random(); string[] statuses = { "Плохо", "Норм", "Отлично" }; public A(int currentDepth) { Value = currentDepth; if (currentDepth < 10) { b = new B(currentDepth + 1); dynamic RandomValue = rnd.Next(0, 100); dynamic magicZero = ((b.Value - currentDepth) % 2) - 1; dynamic dynamicIndex = (RandomValue * magicZero) + 1; Console.WriteLine($"[Глубина {currentDepth}] Рандом {RandomValue} => Статус: {statuses[dynamicIndex]}"); Value = b.Value + 1; } } } class B { public int Value; public A a; public B(int currentDepth) { Value = currentDepth; if (currentDepth < 10) { a = new A(currentDepth + 1); Value = a.Value + 1; } } }
Вся ветка · 1 ответ →
C
Фотография
нажмите — покажем
🖥 .NET 10 научился класть объекты на стек: escape analysis в JIT Одна из самых полезных оптимизаций в .NET 10 работает незаметно. JIT проверяет, может ли объект пережить метод, в котором его создали. Если не может, объект размещается на стеке, а не в куче. Сборщику мусора отслеживать нечего, а сам объект можно разложить на отдельные поля и оптимизировать дальше. Раньше это работало только для простых случаев. В .NET 10 на стек попадают ещё четыре вида объектов. Маленькие массивы фиксированного размера, причём и из значимых типов, и из ссылочных: int[] numbers = { 1, 2, 3 }; // теперь на стеке string[] words = { "Hello", "World!" }; // тоже на стеке Делегаты. Если лямбда не выходит за пределы метода, объект Func больше не уходит в кучу. Замыкание пока ещё аллоцируется, но это обещают доделать. Объекты в полях локальных структур. Если массив лежит в поле структуры, а структура не покидает метод, массив тоже размещается на стеке. В ассемблере пропадает вызов аллокатора. Заодно в JIT добавили девиртуализацию интерфейсов массивов, поэтому foreach по IEnumerable<T> над массивом теперь инлайнится. Ещё улучшили loop inversion и раскладку кода, а на Arm64 пауз GC стало меньше на 8–20%. Переписывать ничего не нужно: привычный код с лямбдами и маленькими массивами просто начинает аллоцировать меньше после перехода на .NET 10. https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/runtime#escape-analysis
45 · 1.4K ·
R
просто мне грустно, что все растуются
T
ии только только зараждались и тогда @RadmirT насколько я помню к ним не очень хорошо относился, считал что руками быстрее, мне интерестно как поменялось его мнение сейчас

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем