Мартин Фаулер в своей книге по рефакторингу описывает паттерн под названием split loop. Что скажете про такую технику? Применяете или наоборот пытаетесь оптимизировать проход по коллекциям и всё делать в одном цикле? https://refactoring.com/catalog/splitLoop.html
Software engineer
· 27.12.2024 · ред.6 комментов
· 06.01.2025
Стараюсь в таких задачах применять параллелизм и функциональный подход.
0
ответить
коммент удалён
· 06.01.2025
Каждому потоку задаешь задачу и на небольшой промежуток времени занимаешь 2 проца вместо одного и 2 кэша, затем выход из функции освобождает их и программа дальше работает в нормальном режиме, т.е. короткие нагрузки создает, что незначительно с точки зрения потребления ресурсов на многопроцессорных машинах, но если у тебя кубер и выделено 0,7 ядра для пода приложения, то нет, все в одном цикле, чтобы не вызвать один метод из другого и не получить n^2
0
ответить
ответ удалён
· 28.12.2024
А что скажете по поводу потенциального снижения производительности?
0
ответить
коммент удалён
· 28.12.2024
От контекста зависит. Если задачи прохода разные (посчитать общую зп и среднее арифметическое длины полового органа) - конечно разделять в два новых метода. А если результаты работы цикла однородны и далее вместе используются - то это смузихлебство ради смузихлебства.
0
ответить
коммент удалён
· 28.12.2024
Иногда бывает код так намешан, что разделить - очень здравая идея... Становятся видны зависимости по данным и варианты как можно декомпозировать методы
0
ответить
коммент удалён
· 06.01.2025
Но мне понятен и симпатичен ход его мыслей.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён