Pull to refresh

Comments 8

У меня мечта. Многие выделения, часто в рамках одного метода. Тот же боксинг. Вот если бы компилятор мог доказывать время жизни для таких обьектов, а clr поддерживала такие хитрые обьекты. То можно было бы и на стеке их создавать. Это бы ускорило все.

В репе .NET есть дизайн док на эту тему, но когда это будет реализовано неизвестно.

Читал у них про это где-то в issue гитхаба. Насколько я понял были эксперименты и они не оказали какого-то должного эффекта на производительность.

По быстрому поискал и нашёл такой комментарий:

We have spent quite a lot of time on automatically detecting good candidates for stack allocation in the JIT. https://github.com/dotnet/coreclr/issues/20253
is the uber issue for it, it has link to the design doc. The code with
the prototype is in master. It is disabled because of it did not show
enough benefits.

Или Go, да. Все современные концепции не могут быть не замечены другими.

И, уже, на dotNET можно писать приложения, которым в целом не нужен GC.

Вспомнил статью,-рекомендацию для dotNET в highload среде, стараться не отдавать, например, StringBuilder на съедение GC и использовать ObjectPool, т.к. повторное создание это расход ресурсов.

Любопытно, а какую производительность показал бы Unity построенный вместо плюсов на современном dotnet.

Можно сравнить хотя бы с UWP (в том числе Net Native).

Но последний раз наверное только в UNITY 2018-2019 можно было использовать родной Net райнтайм в UWP

Вывод из статьи:

Юнитеки придумали медленный плюсовый костыль вместо того чтобы научиться грамотно использовать управляемый рантайм

Sign up to leave a comment.

Articles