2004.04.27付の「JavaとCとの性能比較(行列式計算/再帰呼び出し有)」と同じものをSolarisで実行した結果も実測してきたので、結果を掲載する。
UltraSPARC3:1.2GHz Solaris8(EUCJP) gcc2.95.3 JDK1.4 |
C | Java | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
最適化 無 | 最適化 有 | インタ プリタ | Hot Spot | AOT | ||||||
malloc | alloca | malloc | alloca | 最適化 無 | 最適化 配列 | 最適化 有 | ||||
行列式 計算 | 動的メモリ確保 | 90 | 76 | 51 | 33 | 431 | 44 | ? | ? | ? |
事前メモリ確保 | 71 | 72 | 30 | 32 | 426 | 34 | ? | ? | ? |
AOTについては、gcjがインストールされていなかったので(というか、gcc2.95.3はgcjに対応していないのかも)、AOTの計測は出来なかった。
特徴としては、最適化したCとJavaのHotSpotとの性能差がほとんど無いという点だろうか。
これはSolarisのメモリ管理がWindowsのそれとではかなり異なるということかも知れない。
他にも、メモリ以外の他の原因がボトルネックになっていて、それが性能差に対して支配的になっているという可能性もある。
色々なことが考えられるが、とりあえず今回の比較はここまでとしたい。
次はまたWindows環境での実測を行うことにしよう。