- 843 名前:822 mailto:sage [2009/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 か?)
|

|