У меня есть кусок кода Java, который создает объект из xml и занимает несколько наносекунд до миллисекунды в зависимости от размера объекта. Иногда я должен вызвать этот метод 1-2 раза, иногда 70-80 раз в цикле, чтобы построить список объектов.Когда выполнение параллельных операций является излишним?
Я пробовал строить объекты параллельно, но иногда это занимает вдвое больше, чем последовательное и половину других времен. Теперь мой вопрос в том, есть ли какие-либо рекомендации или показатели эффективности производительности, чтобы руководствоваться, когда следует использовать многозадачность и когда это просто избыток?
Пример кода, который я использую:
List<Callable<Integer>> tasks = new ArrayList<Callable<Integer>>();
for (final Integer object : list) {
Callable<Integer> c = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
return test.m1(object);
}
};
tasks.add(c);
}
List<Future<Integer>> results = EXEC.invokeAll(tasks);
for (Future<Integer> fr : results) {
fr.get();
}
Как определяется 'EXEC'? –
Какая работа 'test.m1()' делает? – vsnyc
ExecutorService EXEC = Executors.newCachedThreadPool(); – Heisenberg