rmi.transport.tcp.tcptransport Connectionhandler消耗很多的CPU

我正在运行第三方RMI服务器应用程序提供了一个方法("getImage()" returns an image as byte[]). 这个方法的实现(通过SOAP-WS获取图像)由我提供。

运行这个RMI-Server的问题是CPU占用率过高(用jvisualvm测量):65%的CPU时间进入"sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()" ,而第二个地方用15%是"sun.net.www.http.KeepAliveCache.run()" 。 “真正”的工作(缩放图像)排在第四位。 服务器运行在win 2003服务器上。 我猜资源/连接处理有问题吗? 但这是一个实现问题或Windowsconfiguration问题?

另一个观察是:如果cpu利用率高,内存利用率也上升 – 问题是:这是因为gc无法完成其工作或许多图像等待交付。 所有我可以说的内存用于byte[]

所以有什么想法做什么?

thx提前

sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()是在编组参数之后和编组结果之前调用服务器中的远程实现的方法。 时间表可能意味着,作为RMI结果,需要更多的时间才能通过线返回图像,而不是缩放图像。

我只能推测,字节数组可能是图像,但它可能是任何数量的东西。

顺便说一句,你运行一个多核心机器? 我也遇到了这个问题,发现VisualVM在四核Win7机器上占用了50%左右的CPU利用率,而在单核winXP上指向了相同的元凶。 我正在运行服务器的Jetty。

对不起,我不能回答真正的问题,但希望听到一个解决方案在这里或能够在这里很快分享。 既然你几个月前遇到过这个,也许你已经找到了一个,可以分享?