Здравтсвуйте.
ТутАвтор: Ночной Смотрящий
Дата: 11.09.18
вот дискуссия завезалась на счет экспоненциального взрыва состояний при генерации ДКА в linq.
На сколько это правда в теории и на практике? Разве для каждого linq expression не будет построен свой отдельный автомат,а будет генерится один большой и общий?
Говорят jb переписало весь код с linq по ентой причине или из-за проблем с памятью?
Здравствуйте, Sharov, Вы писали:
S>ТутАвтор: Ночной Смотрящий
Дата: 11.09.18
вот дискуссия завезалась на счет экспоненциального взрыва состояний при генерации ДКА в linq.
Этот пользователь как-то раз очень настойчиво убеждал меня в сущестовании у решарпере некой настройки, которой там конечно же небыло (если память не изменяет, только совсем недавно вроде бы появилась) и на все просьбы показать её отвечал примерно в том же духе и тем же тоном, что и там
Чего взять?
S>На сколько это правда в теории и на практике? Разве для каждого linq expression не будет построен свой отдельный автомат,а будет генерится один большой и общий?
А при чём тут "linq expression"? Речь, мне показалось, была про System.Linq.Enumerable и yield, а не про экспрешены System.Linq.Expressions?
S>Говорят jb переписало весь код с linq по ентой причине или из-за проблем с памятью?
Тут, наверное, нужно опять же уточнить, о чём именно речь: о yield или о System.Linq.Enumerable — в данном случае это может оказаться важным. Вот например не плохое описание сыскалось на скорую руку:
https://stackoverflow.com/questions/3969963/when-not-to-use-yield-return
// Кстати, в CoreFx очень прилично оптимизировали
Enumerable для простых сценариев.
Здравствуйте, _FRED_, Вы писали:
S>>На сколько это правда в теории и на практике? Разве для каждого linq expression не будет построен свой отдельный автомат,а будет генерится один большой и общий?
_FR>А при чём тут "linq expression"? Речь, мне показалось, была про System.Linq.Enumerable и yield, а не про экспрешены System.Linq.Expressions?
Под expression я имел вот что: дан сл. вызов .Select().Where().GroupBy().Any() и каждый вызов ф-ии явл. expression. Вероятно, я с терминологией напутал.
Далее, каждый вызов ф-ии (select, where и т.д.) генерит свой КА, и откуда там взять exp. росту я
Здравствуйте, Sharov, Вы писали:
S>ТутАвтор: Ночной Смотрящий
Дата: 11.09.18
вот дискуссия завезалась на счет экспоненциального взрыва состояний при генерации ДКА в linq.
S>На сколько это правда в теории и на практике? Разве для каждого linq expression не будет построен свой отдельный автомат,а будет генерится один большой и общий?
S>Говорят jb переписало весь код с linq по ентой причине или из-за проблем с памятью?
На сколько я помню, они переписали не весь код, а вещи навроде форматтера. Зачем в такие числодробилки совать linq — вообще не ясно. Там ленивость вообще не нужна.