09/02/14 23:18:34
>>842が原因を解明してくれたんで、チラッと調べてみた。
ソースは mono-2.2/mcs/class/corlib/System/Array.cs で、
詳細は省くけど object int double 以外は、汎用的なやたら遅い
Swapper というもので処理されてた。
当然 long が Swapper で処理されていたので、int と同じ処理
を追加したら以下の結果になった。
System.Int32: 0.0042768 s
System.Int64: 0.0050798 s
System.Int32: 0.0042583 s
System.Int64: 0.0051871 s
System.Int32: 0.0043195 s
System.Int64: 0.0052207 s
ソース見ればなんで遅いかは一目瞭然だけど、こういう処理は
Generic を使うべきだろうなと痛感する。(List.Reverse か?)