我正在运行第三方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[] 。
所以有什么想法做什么?
如何正确使用ProcessBuilder
任何人都可以提出一个Java或斯卡拉DOS /基于terminal的用户界面框架?
为什么Glassfish在Linux中似乎需要比在Windows中更多的内存?
OpenJDK 64位服务器VM警告:忽略选项MaxPermSize = 350m;
Java AclAttributeView为Windows上的单个ACL返回多个AclEntry对象
thx提前
java.nio.file.InvalidpathException:格式错误的input或input包含使用国家字符时无法映射的字符
如何debuggingLinux上的本地Java崩溃?
使用SCP协议传输文件
sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()是在编组参数之后和编组结果之前调用服务器中的远程实现的方法。 时间表可能意味着,作为RMI结果,需要更多的时间才能通过线返回图像,而不是缩放图像。
我只能推测,字节数组可能是图像,但它可能是任何数量的东西。
顺便说一句,你运行一个多核心机器? 我也遇到了这个问题,发现VisualVM在四核Win7机器上占用了50%左右的cpu利用率,而在单核winXP上指向了相同的元凶。 我正在运行服务器的Jetty。
对不起,我不能回答真正的问题,但希望听到一个解决方案在这里或能够在这里很快分享。 既然你几个月前遇到过这个,也许你已经找到了一个,可以分享?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。