2011-06-14 15 views
0

アプリケーションのパフォーマンスを向上させる方法を教えてください。私のアプリケーションは、Java、Hibernate、Servlets、Wsdlを使って書かれています。私はWebサービスに使っています。私はLinuxマシン上でいくつかのテストを実行したので、実行の適切なTPSを得ることができます。アプリケーションのパフォーマンスを向上させる方法

でも、パフォーマンスには満足できません。

このため、すべての手順を実行するとパフォーマンスが向上します。

上記に加えて、私はコードカバレッジを実行し、それぞれのすべてのテストと私が書いたすべてのサービスについて、コード内のバグを目​​立って見つけました。

個々の提案を招待します。

ありがとうございました。

+0

あなたがパフォーマンスに満足していない場合は、それが不満足な場所を見つけようとしましたか?私はあなたの声明が暴言のように出てきたことを恐れています。 –

+0

パフォーマンスを測定するために正確に何をしましたか?解決しようとしている特定のパフォーマンス上の問題はありますか?あなたのアプリケーションは正確に何をしていますか? – abalogh

答えて

3

アプリケーションのプロファイルを作成し、ボトルネックをすべて除去します。

また、それ以前には、1日か2日かかることがありますので、ご理解の上、Java Performance Tuningニュースレターをお読みください。

0

パフォーマンスはディスクI/OまたはネットワークI/Oに関連していますか? (DBの観点から)ハイスループットシステムでは、Hibernateが最善の方法ではないかもしれません。もしあなたがたくさん書いているのであれば、別のメカニズムを使ってデータベースに書き込むことをお勧めします。単純なJDBCに切り替えるだけでスピードアップするかもしれません。 第2に、あなたのWebサービスが結果を返すのに時間がかかりすぎるのでしょうか? SOAPは本当に最速のプロトコルではありません - あなたはRESTのようなものをJSONと組み合わせて見たことがありますか?

+0

サービスフローのサーブレットでは、JSONのみを使用しています。他のシステムが私のサービスの一部を呼び出す場合にwsdlを使用しています。 –

+0

と各リクエスト、JSONまたはWSDLのネットワークトリップを測定しましたか? – Liv

+0

JSONのようにネットワークが分かっていますが、WSDLの測定方法を教えてください。 –

1

VisualVM、JProfilerなどのツールを使用してアプリケーションを監視し、パフォーマンスのボトルネックを特定する必要があります。実際のパフォーマンスの問題がどこにあるかを知らずにアプリケーションをチューニングするのは無意味です。

プロの環境では、実行パスに沿ってパフォーマンスのボトルネックを示すことができるdynaTraceをお勧めします。このツールでは、アプリケーションの所要時間を正確に表示できます。

+0

VisualVmを使って、それぞれの重要なサービスとデータベースヒットがどれくらい時間がかかるかを調べました。これらの統計では、私はサービスには多少満足していますが、データベースヒットには不満があると言えるでしょう。 –

+0

少なくとも、チューニングするものを見つけました。データベースチューニングガイドは、すべての主要なデータベースで使用できます。場合によっては、欠落した索引を作成することで問題が発生する場合もあります。 – Daniel

+0

たとえば、[http://stackoverflow.com/questions/2980359/web-page-database-query-optimization](http://stackoverflow.com/questions/2980359/web-page-database-query-optimization)ヒット数を減らすためのいくつかの提案が含まれています。一般的には、データベースのヒット数を減らすための良い方法としてキャッシングをお勧めします。 – s106mo

関連する問題