Мы столкнулись с интересной проблемой, которую заметили во время нагрузочного тестирования нашей системы. Мы активно используем log4j (в JBOSS) для ведения логов. Вот наивный пример некоторого протоколирования, которое мы ведем
void someFunction()
{
Log.info("entered some function");
...
Log.info("existed some function");
}
Теперь интересная вещь, которую мы заметили: если мы запускаем 100 потоков против этой функции; вызовы Log.info() блокируются для каждого потока... то есть поток 2 ждет, пока поток 1 закончит вызов "Log.info". В случае с потоком 100; в итоге он ждет довольно долгое время... Мы используем встроенный файловый регистратор.
Это известная проблема?