В основном вы хотите иметь столько готовых к запуску потоков, сколько у вас доступно ядер, или не более 1 или 2, чтобы гарантировать, что ни одно из доступных вам ядер никогда не останется без работы. Хитрость заключается в оценке количества потоков, которые обычно блокируются в ожидании чего-то другого (в основном ввода / вывода), поскольку это полностью зависит от вашего приложения и даже от внешних объектов, находящихся вне вашего контроля (базы данных, другие распределенные службы и т. Д. И т. Д.) .
В конце концов, как только вы определились с тем, сколько потоков должно быть оптимальным, запуск тестов для размеров пула потоков по вашему расчетному значению, как вы предлагаете, является хорошей практикой (по крайней мере, он позволяет вам дважды проверить предположения), особенно если, как выяснилось, вам нужно получить последнее падение производительности вашей системы!