2

カスタムシリアライザーで FieldInfo.GetValue() 呼び出しを集中的に使用しています。この関数は本当に遅いです。

1)高速化するポータブルな方法はありますか? FieldInfo.GetValue() 実装によるチェックは必要ありません。その値をすばやく取得する必要があるだけです。

次に、ポータブルでない方法についてです。モノを使用しています。私のプロファイラーは、FieldInfo.GetValue() がほとんどの時間を MonoField.CheckGeneric() で費やしていることを示しています。MonoField.GetValueInternal() への呼び出しは非常に高速ですが、プライベートです! もちろん、リフレクションを使用してこのプライベート メソッドを直接呼び出すこともできますが (一般的なチェックを行っていないため)、リフレクションによる呼び出しはすべてのパフォーマンス ブーストを無効にします。

2)このプライベート メソッドをすばやく呼び出すことは可能ですか (リフレクション オーバーヘッドがなく、Mono ソースを変更してパブリックにする必要はありません)。

4

1 に答える 1