У меня есть приложение Java, работающее на 32-разрядном виртуальном процессоре Sun/Solaris 10 (x86)/Nahelem с 8 ядрами (2 потока на ядро).
Конкретная утилита в приложении - это ответ на какое-либо внешнее сообщение. В моей тестовой среде производительности, когда я готовлю и отправляю ответ в том же потоке, который получает внешний вход, я получаю около 50 us преимущество, чем когда я передаю сообщение отдельному потоку для отправки ответа. Я использую ThreadPoolExecutor
с SynchronousQueue
, чтобы выполнить передачу обслуживания.
В вашем опыте, какова ожидаемая задержка приемлемая между планированием задачи в пуле потоков и ее получением для выполнения? Какие идеи работали для вас в прошлом, чтобы попытаться улучшить это?