Может ли JSCH достаточно быстро получать сообщения с удаленного сервера

Я хочу написать инструмент Java для мониторинга журнала FIX. Идея состоит в том, чтобы использовать SSH для входа на удаленный сервер, а затем получить вывод команды «tail -f xxx» на свой компьютер, остальное — это некоторая работа по анализу журнала. Когда я тестировал с помощью JSCH, независимо от того, что я читал информацию из bufferReader или непосредственно из InputStream, я обнаружил, что вывод был с задержкой, намного медленнее, чем результат запуска «tail -f xxx» в шпаклевке. Чего-то не хватает в моих кодах? Или это не лучший способ постоянно получать информацию из журнала с помощью JSCH?


person user462872    schedule 14.01.2012    source источник


Ответы (1)


Я нашел причину, ребята. Я использовал такую ​​команду «tail -f xxx | grep zzz». Поскольку 'grep' использует буферизацию, я получил некоторую задержку вывода. Я перенес фильтрацию на свою локальную сторону, результат тестирования намного лучше.

person user462872    schedule 15.01.2012
comment
Если ваша версия поддерживает это (GNU grep поддерживает), использование grep --line-buffered может избежать этой проблемы (за счет некоторой дополнительной нагрузки на ЦП). - person Andy Lynch; 17.09.2013