2004.03.27付の「JavaとCとの性能比較(ファイル出力処理)」での結果はWindowsXPでの結果だった。
今回、それと同じものをSolarisを借りて実行することが出来たので、その結果を掲載する。
UltraSPARC3:1.2GHz Solaris8(EUCJP) gcc2.95.3 JDK1.4 |
C | Java | 最適化 無 | 最適化 有 | 最適化 無 | 最適化 有(*3) |
Encode 無 | Encode 有 | Encode 無 | Encode 有 |
---|---|---|---|---|---|---|---|
出力 (*2) | バッファ無 | 137 | 137 | 256 | 1024(*1) | 230 | 69(*1) |
バッファ有 | 6 | 6 | 47 | 944 | 15 | 44 |
(*1)Encoding処理の内部バッファが有るので、正確にはバッファ無ではない。
(*2)Cの出力関数としてはfputsを用いた。
(*3)Javaの最適化はHotSpot(実行時最適化)。
Windowsという差もあるが、gccのバージョンも違っている。
リリースの日付としては2001年3月くらいのようだ。かなり古いものだが、借りている環境に新しいものを勝手に入れるわけにも行かなかったので、このままで実行した。
結果としては、Cの方がJavaよりもかなり高速という感じである。
SolarisでのJavaの最適化が不十分なのか、Cの最適化が非常に優れているのかのどちらかは分からないし、OSとしてのどういった違いがあるのかも分からないが、実測としてこういう結果になるのは確かのようだ。