В .NET 10 зафиксирован регресс производительности LINQ вместо ожидаемого улучшения
В новой версии платформы .NET 10 зафиксировано существенное падение производительности метода LINQ First(predicate), несмотря на обещания его улучшения. По данным тестирований, деградация может достигать 31% по сравнению с .NET 9.
Пользователи новой платформы .NET 10 столкнулись с непредвиденным снижением производительности критического метода LINQ First(predicate). Если разработчики заявляли о потенциальном замедлении на уровне до 19% в определенных сценариях, то независимые тесты показывают гораздо более серьёзную деградацию — вплоть до 31% по сравнению с предыдущей версией .NET 9. Этот результат стал неожиданностью для сообщества, так как обычно новые версии фреймворка стремятся к оптимизации.
Проблема была оперативно зафиксирована в репозитории dotnet/runtime, где ей присвоили номер #117717. Команда разработчиков быстро определила причину: она кроется в связке оптимизаций Profile Guided Optimization (PGO) и инлайнинга. В .NET 10 делегат предиката для указанного метода перестал корректно инлайниться, что и привело к падению производительности.
Несмотря на выявленную причину, разработчики приняли решение не исправлять проблему в текущем релизе .NET 10. Они опасаются, что внесение изменений на данном этапе может привести к возникновению новых, более серьёзных багов и нарушению стабильности платформы. Ожидается, что полноценное решение будет реализовано в следующей версии — .NET 11. Тем не менее, была попытка частичного исправления, но она не решила проблему полностью, и баг был переоткрыт как #119425.
Источник: Habr · Rusability ИИ


Комментарии (0)
Без регистрации. Комментарии проверяются автоматически перед публикацией.
Пока нет комментариев. Будьте первым!