Javaでプログラミングをしています。
あるコードを書いたのですが、もろもろの演算にとても時間が食われていて、とてもではないですが、使えません。
可読性が下がってもいいので、とにかく高速化したいです。
具体的な方法を出来るだけ多く教えてください。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答5件
0
ベストアンサー
諸々ではいけません。大抵の場合遅くなっているのは1箇所か2箇所程度です。ピンポイントで対策を打たないといけません。
実行中にデバイスモニタでCPU・メモリ・ストレージ・ネットワークのどれに負荷がかかっていますか?どれでもない場合はDBの問い合わせなど外部のレスポンスが遅いのかもしれません。
また、どの処理かプログラムにタイマーを仕掛けて計測しましょう。
CPUに負荷がかかっている場合は、ループの回数に注意しましょう。
地味な計測を行うのが高速化の近道です。
あと、可読性はレスポンス改善にも重要です。可読性が低いと非効率な処理をしていても気が付きません。もしすでにほうぼうにレスポンスの改善の対応をしているなら、それを全部戻して、可読性を上げて見て下さい。それがヒントになることもおおいです。
投稿2017/05/25 15:02
総合スコア2884
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
- Java がヘボい
- プログラムがヘボい
2.1 コードがヘボイ
2.2 論理がヘボい
3. 他の部分がヘボい
3.1 使用しているライブラリがヘボい
3.2 関係している他のプログラムがヘボい
4. リソースがヘボい
4.1 CPUがヘボい
4.2 メモリがヘボい
4.3 HDDがヘボい
4.4 OS関連がヘボイ
4.5 通信回りがヘボい
4.6 仮想環境がヘボい
など、プログラミング以外にも要因はありがちなので
そのへんも考えてみてはいかがでしょうか。
投稿2017/05/25 15:19
総合スコア7468
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
漠然としており回答が難しいです。場合によりけりです。
簡単なケースですと、単純に計算処理数を減らせる場合であればラッキーです。極端な例ですが、ソートアルゴリズムとして(普通あり得ないでしょうが・・・)ボゴソートを採用していたとします。これをバブルソートにすれば劇的に速くなります。マージソートならばさらに速くなります。確率的にはクイックソートも速いと期待できます。
このほか、メモリを贅沢に使うことによって高速化できる場合があります。もちろん、メモリ占有量が増大することが考えられます。が、繰り返し演算における共通部分を記憶しておくことができれば高速化に繋がります。また、HDD等のアクセスを一括化し、以後メモリ上においておくという使い方も高速化に結びつきます。
投稿2017/05/25 15:00
総合スコア4853
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。