Какие версии .NET Framework поддерживают улучшения среды выполнения для Span‹T›?

Я понимаю, что Span<T> можно использовать в .NET Framework как пакет Nuget. JIT обновляется до .NET Core, чтобы повысить производительность Span<T> почти до стандартной производительности массива.

Какие версии .NET Framework поддерживают эти улучшения производительности среды выполнения Span<T>?


person boot4life    schedule 31.05.2018    source источник
comment
Ни в CLR, ни в джиттере не нужно ничего особенного. Вы должны соблюдать требования пакета Nuget, вы можете перевести часы назад на 6 лет, вернуться к .NET 4.5. Возврат назад может сработать, но аннулирует гарантию.   -  person Hans Passant    schedule 31.05.2018
comment
@HansPassant Были проведены некоторые оптимизации, как я указал в своем ответе. Без оптимизаций работает менее быстро, но работает корректно.   -  person xanatos    schedule 31.05.2018


Ответы (2)


У них не было до .NET 4.7.1. Взято из здесь< /а>:

Примечание. Описанные здесь изменения появились после создания вилки выпуска для .NET Core 2.0, поэтому они доступны в ежедневных предварительных сборках, но не в выпущенных битах версии 2.0. Точно так же эти изменения появились после создания ответвления для .NET Framework 4.7.1. Изменения в передаче аргументов структуры и компоновке блоков, которые являются чисто изменениями JIT, будут автоматически распространяться на последующие выпуски .NET Framework с новыми битами JIT (исходные коды RyuJIT совместно используются .NET Core и .NET Framework); другие изменения зависят от их компонентов среды выполнения для распространения на .NET Framework.

а потом

Улучшения для Span

Часть нашей работы была мотивирована введением Span, чтобы он и подобные типы могли лучше выполнять свои обещания по производительности.

Одним из таких изменений было #10910, из-за которого JIT распознавал методы получения свойств Item Span и ReadOnlySpan как встроенные функции.

person xanatos    schedule 31.05.2018

Маловероятно, что поддержка "fast span" появится в версии .NET Framework в ближайшее время - и, конечно же, ее нет в 4.7.2 (или более ранних версиях) и ее нет в планах на 4.8 - см., например, эту ветку обсуждения.

person Andy Ayers    schedule 11.07.2018
comment
Вау, не знал, что .NET Framework 5.0 вообще не в планах. Спасибо за ссылку. Будет очень интересно посмотреть, как .Net Core 3.0 будет соответствовать потребностям людей. - person lightw8; 06.08.2018
comment
Чтобы узнать больше о том, что ждет .Net Core 3.0, по крайней мере, с точки зрения winforms/wpf, посетите страницу Готовы ли ваши приложения Windows Forms и WPF к .NET Core 3.0 - person Andy Ayers; 08.08.2018