2015-01-29 2 views
0

У меня есть работа, которая выполняет следующие задачи около 10000 раз:Достаточного количества потоков для работы сети/баз данных

1) запроса HTTP (1 секунда)

преобразования 2) Данные (0,3 секунды)

3) базы данных вставки (0,7 секунды)

общие задачи, время, которое для каждой итерации составляет около 2 секунд, распространяется как упоминалось выше.

Я бы хотел сделать многозадачность, но мне интересно, какое оптимальное количество потоков для таких заданий (процессор с 4 ядрами)?

Спасибо

ответ

1

Профиль Ваша задача заключается в следующем:

  • 1,7 секунды, проведенные в состоянии блокировки;
  • 0,3 секунды, потраченные на использование процессора.

Это означает, что задача накладывает среднюю нагрузку на CPU на 15%, что делает процессор относительно незначительной проблемой в вашем подходе к ускорению процесса в целом. Ваша производительность, вероятно, не будет ограничена вычислительной мощностью вашего компьютера, а скорее одновременными характеристиками производительности двух внешних систем, от которых вы зависите.

Заключение: ваш вопрос невозможен из-за отсутствия ключевой информации. Возможно, хороший подход - это оптимизация путем проб и ошибок; однако имейте в виду, что ваша производительность зависит от очень большого количества факторов, не находящихся под вашим контролем (они могут возникать из любой точки всей системы, состоящей из внешних машин и всех сетевых соединений).

Смежные вопросы