[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: [jfriends] Re: Javaベンチマーク







高橋です。

ベンチマークはとっても奥が深い世界なので、表面的なことしか言えませんが。

>># ベースのソースはCですし、VMの性能試験ですからCと条件を同じ
>># にしなければならないわけで、staticの固まりになっています。
>># OOPしてないぞ、と文句を付けないように(^^;
>
>どのような尺度で何を計測するベンチマークなのでしょうか?
比較的小さいサイズのデータを読み書き演算するプログラムの場合、CPUのキャッシ
ュ
に収まってしまい、異常に良い性能が出てしまうことが考えられます。Cで書いた場
合
実行ファイルのサイズも小さいので、下手をするとデータとコードと両方ともon 
cache
となるかもしれません。プロトタイプで性能評価したらとてもgoodだったのに、い
ざ
本物のアプリケーションを作ったら、とっても性能が悪くてスペック違反になって
しまう
ことがよくあります。
一方Javaはインタプリタなので、そもそもコードはまずcacheにのりきらないし、
インタプリタなのでデータもcacheに残り続けないかもしれません。

>オリジナルのCソースに条件を合わせるということには
>どのような意味があるのでしょうか?
>
># たぶん、大量の配列を扱うのは Java の不得意な分野だと思います。
Javaは配列の境界チェックをしていますしね。
#実行性能はCの方が100倍速いが、プログラムが完成するまでの期間は100倍遅
かった
#なんてことがあるかも;-)

>## Java と C でサーバー書いてベンチマークしたらいいんじゃないでしょうか。
>## 私は書けませんが..
たしかVolanoMarkというベンチマークがあります。ソケット接続をがんがん行って
、
データを転送するような類だったと思います。これと同じプログラムをCで書く気は
とってもおきませんが・・・
# Cでマルチスレッドなプログラミングって大変そうだし、ソケット扱うのも大変
そう。
# リトルエンディアンかビックエンディアンかも気にしないといけなかったかも。


------
Toru Takahashi
torutk@xxxxxxxxxx
NIFTY: GHE00470
http://www.alles.or.jp/~torutk/