Здравствуйте, Аноним, Вы писали:
А>В базе есть миллион клиентов, для каждого клиента нужно сгенерировать отчет и сохранить обратно в базу. А>Сейчас на эту задачу уходит 5 часов если выполнять последовательно. А>Попробовал через пул-потокв (10 потоков) — заняло 4,5 часов. А>Согласно бизнес требованиям задача должна выполнятся не более 1 часа.
Таки поставить профайлер и посмотреть на какие этапы уходить больше процессорного времени.
А>Приложение использует Spring + Hibernate и одну базу данных. Потяно что потоки конкурируют за доступ к данным,
Потоки конкурируют на чтение??? Надеюсь вы отчеты без Hibernate строите?
А>но все равно мне непонятно почему 10 потоков не дали значительного прироста производительности.
Возможно потому что узкое место не в CPU?