Re: Минутка WTF-5: реально WTF
От: hi_octane Беларусь  
Дата: 23.04.16 16:36
Оценка: 85 (3) +1
Спрятал чтобы не сломать случайно интригу тем кто читает в плоском режиме.

  Скрытый текст
У HeavyStructWrapper2 надо убрать у структуры readonly. Причина тормозов в том что компилятор C# не знает какие методы у структруры мутабельные а какие нет (имхо мог бы вычислять и аттрибутом помечать, либо могли добавить модификатор const/readonly как сделано у C++.
Без этого знания считается что все методы мутабельные, и CLR приходится для сохранения структуры в исходном состоянии вызывать .Test() только у копии. Т.е. перед каждым вызовом .Test() делается копия структуры, и это копирование загоняет всё в тормоза.

P.S. Почему-то у меня ускорение не в 10 а почти в 50 раз. Имхо такой разницы быть не должно, разбираюсь
Nemerle — power of metaprogramming, functional, object-oriented and imperative features in a statically-typed .NET language
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.