Re: Resharper дико тормозит на файлах с LanguageExt
От: ollka Россия  
Дата: 15.12.16 19:32
Оценка:
Слава, здравствуйте!

Алгоритмически это самый сложный и дорогой для Overload resolution алгоритма пример. Гораздо дороже любого LINQ. И студия (точнее Roslyn) тоже страдает, просто делает это аккуратнее по отношению к работе в background потоках (то есть менее заметно для пользователя). Можете отключить ReSharper, например, выделить кусочек кода и вырезать его через ctr-x — у меня затыкается надолго.

Сложность во вложенных друг в друга лямбдах, при том, что каждая из них завернута в вызов метода с перегрузками. Каждая перегрузка это точка ветвления: предположим она подойдет, что тогда будет с кодом, который внутри лямбды. Сами можете оценить дерево ветвления и его глубину. Там есть, конечно, еще нюансы и оптимизации, которые могут сильно помочь в каких-то других случаях — но в данном нет. Он самый суровый.

Что мы можем сделать — это поработать над отзывчивостью. Тут есть что улучшать и куда копать. Но по сути разогнать алгоритм Overload resolution здесь не слишком реалистично.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.