私はapache cxfを使ってwebserviceアプリケーションを開発しています。基本的にこのWebサービスは、hibernateを使用してpsqlデータベースを検索し、結果を返すものです。
このサービスの問題は、それほど遅いことです。起動時にLOCALLYを実行してクライアントがデータを要求するようにすると、VisualVM Profilerはそのことを指摘しますsun.rmi.transport.tcp.TCPTransport.ConnectionHandler.runはCPU時間の80%を消費します。リストの他の機能はすべて5%未満です。
私はこの機能がサービスからクライアントへのデータ転送に関係していると考えます。どちらもローカルに実行されるので、この転送でCPU時間がかかるとは思わないでしょう。誰もがこれを引き起こす可能性があることを知っている?
ありがとうございます!
これは、クライアントプロセスまたはサーバープロセス、またはその両方をプロファイリングすることですか? – Tim
"CPU時間"の80%、または "時間"の80%しか消費しませんか?言い換えれば、その間に何かをやっているのですか、それとも待っていますか? –
@Branko彼はVisualVMを使ってプロファイリングしていますが、これはCPU時間ではなく壁時計の時間をカウントしています。この観察はCPU使用率の隣で確認されます。 – Tim