匿名質問者

Javaって今でも遅いの?


顔認証や人物検知を動画(カメラ映像)で処理するプログラムを考えています。
その際、OpenCVを用いて作ってみようかなと考えているのですが、画像処理に
Javaというとどうしても遅いという意見を聞きます。

以前はそうだなと思っていたのですが、現在でもJavaはこういった
動画のリアルタイム解析などには向かないのでしょうか?それともC++などと
比べると遅いという意味合いなのでしょうか?

作り比べてみるのが一番かもしれませんが、皆様の所感というか
経験則などありましたら参考にさせて頂けると嬉しいです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/05/01 11:25:03

ベストアンサー

匿名回答1号 No.1

スマートフォンから投稿

世情の流れで、業務アプリはwebを使ったjava で作る事が多いのです。
java は早くなったというのですが…
どうしても速度が欲しい部分のCGIをCで組み直してみると、体感的には数秒かかっていた処理が瞬間的に終わるようになります。
ああ、やっぱりな。と思う事しきりですね。

他1件のコメントを見る
匿名回答3号

JavaはVMの立ち上がりやJITが適用されるまでの時間があるのでCGIっていうのは比較には一番不利な条件じゃないでしょうか。同様に、頻繁に起動しないとならない処理には向かないと言えると思います。

2015/04/24 21:01:04
匿名質問者

補足というか突っ込みコメントありがとうございました。ざっくりになってしまいますが、CGIはバックで立ち上がって準備ができているのに対し、Javaの方は、イベントが起きてからVMが立ち上がるので条件が違うと言った意味合いでしょうか?確かに…。ありがとうございます。

2015/05/01 11:31:00

その他の回答1件)

匿名回答1号 No.1

スマートフォンから投稿ここでベストアンサー

世情の流れで、業務アプリはwebを使ったjava で作る事が多いのです。
java は早くなったというのですが…
どうしても速度が欲しい部分のCGIをCで組み直してみると、体感的には数秒かかっていた処理が瞬間的に終わるようになります。
ああ、やっぱりな。と思う事しきりですね。

他1件のコメントを見る
匿名回答3号

JavaはVMの立ち上がりやJITが適用されるまでの時間があるのでCGIっていうのは比較には一番不利な条件じゃないでしょうか。同様に、頻繁に起動しないとならない処理には向かないと言えると思います。

2015/04/24 21:01:04
匿名質問者

補足というか突っ込みコメントありがとうございました。ざっくりになってしまいますが、CGIはバックで立ち上がって準備ができているのに対し、Javaの方は、イベントが起きてからVMが立ち上がるので条件が違うと言った意味合いでしょうか?確かに…。ありがとうございます。

2015/05/01 11:31:00
匿名回答2号 No.2

Javaがリアルタイム処理に向かないもう一つの理由として、単純なパフォーマンス以上にフルGCの存在があります。

単純なパフォーマンスはハードウェアの進化に比例して改善するので、C++などで書いたネイティブコードより遅かったとしてもいずれ問題ではなくなります。
しかしフルGCは、ハードウェアが進化してもあまり改善しません。
CPUも速くなりますがメモリ搭載量も増えていくので、メモリ搭載量に比例するフルGC時間は短くならない、と。

リアルタイムなんだけどときどきプチフリーズするかもしれない、というのを許せるかどうかという問題になってきます。

匿名質問者

メモリが増えた分だけフルGCの時間もかかるということですね?
フルGCが起きる可能性も踏まえて、どちらがよいか…でしょうか。
CやC++はメモリ管理が難しいというお話をよく聞くので避けてしまっていた面がありますが、Javaでもこうした面があるのですね・・・。

2015/04/24 13:53:47
匿名質問者

質問者から

匿名質問者2015/05/02 04:59:12

匿名回答5号さんの回答は自分の理解力が足らず、何の1.4なのか理解できずすみません。

ほかの方々もコメントありがとうございました。

連休もありますし、まずは自分で動くものをJavaで作ってみて速さ遅さを実感してみます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません