Здравствуйте, gandjustas, Вы писали:
G>А как насчет Span<T> и Memory<T><br />
<span class='lineQuote level1'>G></span>
Ну, единственное, чем может помочь Span<T> — это потенциальным устраненим проверок выхода за пределы строки во внутреннем цикле. В экспериментальных билдах эта оптимизация есть.
Остаётся найти, в каком месте Span<T> можно проинициализировать в адрес i-той строки массива. Проверкой выхода за границы в этом случае можно пренебречь — у нас проверок станет O(N) вместо O(N*M), причём для интересующих нас случаев M лежит в диапазоне 500-4000.
Сходу — не нашёл.
В принципе, если совместить Span<T> с инлайнингом експрешшнов (TBD), то можно получить вполне приемлемый gain.
Но тут Павел подкинул
задачкуАвтор: Pavel Dvorkin
Дата: 29.06.18
на порядок интереснее:
1. Во-первых, не один массив, а два
2. Во-вторых, есть подзадача с рекуррентным определением. Она сулит феерические впечатления при поисках возможности параллелизации.
Пока что нахожусь на этапе мучительных поисков синтаксиса.