質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

5回答

4761閲覧

Javaでの演算の高速化

maru2213

総合スコア16

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/05/25 13:20

Javaでプログラミングをしています。

あるコードを書いたのですが、もろもろの演算にとても時間が食われていて、とてもではないですが、使えません。
可読性が下がってもいいので、とにかく高速化したいです。
具体的な方法を出来るだけ多く教えてください。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koko_u

2017/05/25 13:22

具体的なコードがないと具体的な回答を得るのは難しいでしょう
guest

回答5

0

一般的な話として、一回一回の計算にはほとんど時間はかかりません。
時間がかかる最大要因はループ数です。
ループを減らす工夫をするのが高速化の鍵です。

投稿2017/05/25 13:28

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

諸々ではいけません。大抵の場合遅くなっているのは1箇所か2箇所程度です。ピンポイントで対策を打たないといけません。

実行中にデバイスモニタでCPU・メモリ・ストレージ・ネットワークのどれに負荷がかかっていますか?どれでもない場合はDBの問い合わせなど外部のレスポンスが遅いのかもしれません。

また、どの処理かプログラムにタイマーを仕掛けて計測しましょう。

CPUに負荷がかかっている場合は、ループの回数に注意しましょう。

地味な計測を行うのが高速化の近道です。

あと、可読性はレスポンス改善にも重要です。可読性が低いと非効率な処理をしていても気が付きません。もしすでにほうぼうにレスポンスの改善の対応をしているなら、それを全部戻して、可読性を上げて見て下さい。それがヒントになることもおおいです。

投稿2017/05/25 15:02

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

仕様を整理し、もろもろの演算のうち本当に必要な演算だけ実行してはいかがでしょうか?

投稿2017/05/25 15:24

can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

  1. Java がヘボい
  2. プログラムがヘボい

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

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

漠然としており回答が難しいです。場合によりけりです。

簡単なケースですと、単純に計算処理数を減らせる場合であればラッキーです。極端な例ですが、ソートアルゴリズムとして(普通あり得ないでしょうが・・・)ボゴソートを採用していたとします。これをバブルソートにすれば劇的に速くなります。マージソートならばさらに速くなります。確率的にはクイックソートも速いと期待できます。

このほか、メモリを贅沢に使うことによって高速化できる場合があります。もちろん、メモリ占有量が増大することが考えられます。が、繰り返し演算における共通部分を記憶しておくことができれば高速化に繋がります。また、HDD等のアクセスを一括化し、以後メモリ上においておくという使い方も高速化に結びつきます。

投稿2017/05/25 15:00

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問