rmi.transport.tcp.tcptransport Connectionhandler потребляет много ресурсов процессора - PullRequest
4 голосов
/ 08 марта 2011

я запускаю стороннее приложение RMI-Server, предоставляющее ровно один метод ("getImage()" returns an image as byte[]). Реализация этого метода (получение образа через SOAP-WS) предоставлена ​​мной.

Проблема при запускеэтот RMI-сервер - это высокая загрузка ЦП (измеренная с помощью jvisualvm): 65% времени процессора уходит в "sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()", а на втором месте с 15% - "sun.net.www.http.KeepAliveCache.run()".«Настоящая» работа (масштабирование изображения) выходит на 4 место.Сервер работает на Win 2003 Server.Я думаю, что-то не так с обработкой ресурсов / подключения ??но это проблема реализации или проблема конфигурации Windows?

другое наблюдение: если загрузка процессора высока, использование памяти также возрастает - вопрос: это потому, что gc не может выполнять свою работуили много изображений, ожидающих доставки.все, что я могу сказать, память используется для byte[].

, так что есть идеи, что делать?

спасибо заранее

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Я могу только предположить, что байтовый массив может быть изображением, но это может быть любое количество вещей.

Кстати, у вас многоядерный компьютер?У меня также возникла эта проблема, и я обнаружил, что VisualVM указал на того же виновника - около 50% загрузки ЦП на четырехъядерной машине Win7 и 100% на одноядерном winXP.Я использую Jetty для сервера.

Извините, я пока не могу ответить на реальный вопрос, но надеюсь услышать решение здесь или скоро поделиться им.Поскольку вы столкнулись с этим несколько месяцев назад, может быть, вы уже нашли и можете поделиться?

0 голосов
/ 22 марта 2011

sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run () - это метод, который вызывает ваши удаленные реализации на сервере после маршалинга аргументов и перед маршалингом результата. Время может означать, что для возврата изображения по проводам в качестве результата RMI требуется больше времени, чем для масштабирования изображения.

...