我正在运行第三方RMI服务器应用程序提供了一个方法("getImage()" returns an image as byte[]).
此方法的实现(通过SOAP-WS获取图像)由我提供。rmi.transport.tcp.tcptransport Connectionhandler消耗很多CPU
运行此RMI服务器的问题是CPU消耗过高(使用jvisualvm测量):65%的CPU时间进入"sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()"
,第二位的15%为"sun.net.www.http.KeepAliveCache.run()"
。 “真正”的作品(缩放图像)排在第四位。 服务器在win 2003服务器上运行。我猜资源/连接处理有问题吗?但是这是一个实现问题还是Windows配置问题?
另一种观察是:如果CPU利用率高,内存利用率也会上升 - 问题是:这是因为gc无法完成其工作或等待交付的许多映像。所有我可以说的记忆用于byte[]
。
所以有什么想法做什么?提前