ну да, давайте больше оверхеда в него, куда же ещё
Зачем ты пинаешь Linq, его уже ничего не спасёт в плане перформанса
ну почему же, опять можно домазать метаданных в перечисление
его с каждым релизом постепенно обмазывают перформансом
Вроде не важно, в 3 раза линк медленнее, чем написать циклами и ифами, или в 2. Все равно там где перф важен — придётся писать без Linq
вот из-за такого менталитета и проблемы, не только в линке)
https://github.com/NetFabric/LinqBenchmarks/blob/master/Results/Range.RangeSelect.md По этому тесту в нет 6 был в 15 раз медленнее цикла, в нет 8 стал быстрее — в 6 раз медленнее цикла. Если бы появились оптимизации для линка хотя бы к тому случаю, когда запрос не покидает скоуп одного метода, а проще всего их сделать в рослине (который очень толстокож к оптимизациям), то я бы верил, что станет лучше
https://github.com/dubiousconst282/DistIL Во, есть сторонний тул, который умеет разворачивать линк в цикл
Я не так давно вступил в то, что Enumerable.Range не тред сейф. Пишешь на нём AsParallel и всё идёт по елде.
Настолько проклято что я хочу теперь так писать в своем коде
Вообще, допустим, что это поинт про thread safety слабый. Остальные два намного важнее, и я не вижу, как их устранить.
А ведь MS приводит как пример :) https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/introduction-to-plinq#the-opt-in-model
да, есть такое, но можно просто Parallel.For
тред-сейф ли во фшарпе Enumerable.Range?
PLinq, Observable и Dataflow — окончательно проклятые для меня места. Никогда по своей воле не возьму их
первый вполне ничего так работает а вот датафлоу 😄
Да, я так же :) Просто вспомнил, что видел этот пример :)
Не проверял.
Just user IAsyncEnumerable
Кстати да, надо ж не забывать, что в любой момент можно AsParallel сделать - и должно успешно превратиться в PLINQ для всяких любителей сплитераторов
Могли бы добавить такую функцию в модуль seq!
|> Seq.cache |> Seq.threadSafe
О, я такое в шарпах накрутил Кеширую на диск кста)
когда тормозов обычного linq недостаточно
сам удивляюсь до сих пор но в оперативу всё не лезло и это оказался отличный компромиссный вариант решения проблемы
Обсуждают сегодня