|
|
От: |
hi_octane
|
|
| Дата: | 23.04.16 16:36 | ||
| Оценка: | 85 (3) +1 | ||
| Скрытый текст | |
| У HeavyStructWrapper2 надо убрать у структуры readonly. Причина тормозов в том что компилятор C# не знает какие методы у структруры мутабельные а какие нет (имхо мог бы вычислять и аттрибутом помечать, либо могли добавить модификатор const/readonly как сделано у C++. Без этого знания считается что все методы мутабельные, и CLR приходится для сохранения структуры в исходном состоянии вызывать .Test() только у копии. Т.е. перед каждым вызовом .Test() делается копия структуры, и это копирование загоняет всё в тормоза. P.S. Почему-то у меня ускорение не в 10 а почти в 50 раз. Имхо такой разницы быть не должно, разбираюсь | |