Комментарии 11
Я размер пула потоков подбираю методом научного тыка. Запускаю сначала Ncpu потоков, затем увеличиваю в два раза и сравниваю скорость. Если скорость работы упала, то уменьшаю, если возросла, то еще увеличиваю. И так нахожу оптимальный для данной задачи размер пула. Обычно хватает 4-5 пробных запусков по 5-10 минут.
0
А зачем isRunning статическая? Чтобы, выключая один пул, рубануть и все остальные?
+1
Или это опечатка, или я запутался: время выполнения всех задач было 15 секунд, но потом «время выполнения уменьшилось до 28 секунд». Оно все-таки увеличилось? Или 15 секунд это было время выполнения одной задачи?
+1
Существует несколько независимых причин, по которым производительность могла упасть
0
В формуле вычисления оптимального пула потоков видимо должно быть не
Runtime.getRuntime().availProcessors ()
, а Runtime.getRuntime().availableProcessors()
.+1
общая загрузка процессора в пользовательском пространстве составляет всего 2,5%, и у нас есть много неиспользуемых системных ресурсов.
14,87% же. Плюс 2,5% ядро ОС, 83,7% «неиспользуемых системных ресурсов»
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как это работает в мире java. Пул потоков