我正在开发一个webservice应用程序,使用apache cxf。基本上,这个webservice所做的就是使用hibernate搜索psql数据库并返回结果。
这个服务的问题是速度有点慢。当我在Jetty上本地运行它并让客户机请求数据时,VisualVM事件探查器指出sun.rmi.transport.tcp.tcptransport.connectionhandler.run消耗80%的CPU时间。列表中的所有其他函数都小于5%。
我怀疑这个函数涉及到将数据从服务传输到客户机。不过,这两个都在本地运行,所以我不希望这种传输占用这么多CPU时间。有人知道这是什么原因吗?
谢谢!
最佳答案
我怀疑这个函数涉及到从
为客户服务
不,它涉及到从go到whoa的整个RMI调用的解组、定位、执行和编组。如果它占用80%的CPU时间,几乎可以肯定,因为远程方法占用80%的CPU时间。