goでぐるぐるまわしてみた

forで10億回まわすだけみたいのをC言語と比較してみた。
実行は5回。(Ubuntu Linux 9.04 2.6.28-16-generic i686)
なんと平均でgoの方が2.6倍くらい速かった。

平均 min max
go real 1.711 1.097 2.228
user 1.312 1.084 1.524
sys 0.002 0.000 0.012
C real 4.442 3.776 4.703
user 2.828 2.612 3.120
sys 0.001 0.000 0.004

(単位:秒)


まあ、C(gcc)は最適化したら一瞬で終わったのであれだが、
とりあえずgoはかなり速いらしい。
コンパイルは8g,8lで行った。


あとgoは実行ファイルがかなり大きめになった。

$ ls -l c/for3c gotest/for1go 
-rwxr-xr-x 1 **** ****  9112 Nov 18 00:52 c/for3c
-rwxr-xr-x 1 **** **** 68432 Nov 18 00:44 gotest/for1go

でfileしてみたが既にstripされてるらしい。

$ file gotest/for1go
gotest/for1go: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped