int[] vs vector vs int array

http://blog.livedoor.jp/azounoman/archives/50614242.htmlに反応して調べてみた。
int配列でgcc(4以上)で最適化ありだと、
配列の中身が使われてないのでv[i] = v[i] + 1が削除されるっぽい。
配列をグローバル変数にしたら-O3で0m6.328sだった。
vector g++ -O3も0m6.305sでほとんど一緒。
ocamloptで0m6.639s
ocamlopt -unsafeで0m6.412s
だったので境界チェックは遅くないと思われ。


追記:
javaのint[]では0m6.329sだった。


おおっと、テレポーター:
配列長1000000で1000回だと差がなかったのに
配列長100000で100000回だと
ocamlopt 42.141s
ocamlopt -unsafe 18.186s
キャッシュのミスり具合でも違うのか。謎。