Как я могу заставить TCPTransport $ ConnectionHandler.run потреблять меньше процессорного времени - PullRequest
2 голосов
/ 14 сентября 2011

Я занимаюсь разработкой приложения для веб-сервиса, используя apache cxf.По сути, этот веб-сервис выполняет поиск в базе данных psql, используя hibernate, и возвращает результаты.

Проблема с этим сервисом в том, что он довольно медленный.Когда я запускаю его локально на пристани и заставляю клиента запрашивать данные, тогда VisualVM Profiler указывает, что sun.rmi.transport.tcp.TCPTransport.ConnectionHandler.run потребляет 80% времени ЦП.Все остальные функции в списке менее 5%.

Я подозреваю, что эта функция участвует в передаче данных от сервиса к клиенту.Однако оба запускаются локально, поэтому я не ожидаю, что этот процесс займет так много процессорного времени.Кто-нибудь знает, что может вызвать это?

Спасибо!

1 Ответ

0 голосов
/ 14 сентября 2011

Я подозреваю, что эта функция участвует в передаче данных из обслуживание клиента

Нет, он участвует в демаршаллинге, локализации, выполнении и маршалинге всего вызова RMI от go to whoa. Если это занимает 80% процессорного времени, это почти наверняка, потому что ваши удаленные методы занимают 80% процессорного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...