Convert.ChangeType変換汎用型の性能損失テスト
829 ワード
パラメータパケットは常に入力され,当時は汎用+ChangeTypeで解決されていた.テストしたところ、これは確かに遅いようだ.
また、リリース後に最適化されると思われるかもしれません.しかし、ReleaseはDebugと同じように遅く、失望した.
100 w回forサイクル(参考のみ)
使用例
Structの所要時間
Classの所要時間
new class
n/a
306ms
Convert.ChangeType
113ms
67ms
Object強弱タイプ変換
65ms
20ms
直接転送の強さのタイプ
17ms
17ms
また、リリース後に最適化されると思われるかもしれません.しかし、ReleaseはDebugと同じように遅く、失望した.
public void Start<T>(T arg)
{
var tmp = (Class1ArgPack)Convert.ChangeType(arg, typeof(Class1ArgPack));
//Do something
}
100 w回forサイクル(参考のみ)
使用例
Structの所要時間
Classの所要時間
new class
n/a
306ms
Convert.ChangeType
113ms
67ms
Object強弱タイプ変換
65ms
20ms
直接転送の強さのタイプ
17ms
17ms