.NETでFileInfoオブジェクトのコレクションをソートしようとしました。私たちはIComparerを実装し、FileInfoオブジェクトが私たちの基準に基づいてソートされていることを確認しました。その後、FileInfoオブジェクトのソートのパフォーマンスは、単なるintよりも何倍も遅かったことに気付きました。 (そしてC言語での参照の仕組みを思い出して)、ローカル変数を使ってFileInfoプロパティを参照する回数を制限することで、パフォーマンスを向上させることができました。Sorting Reference TypeとValue Typeのパフォーマンス
私の考えは、オブジェクトのプロパティよりローカル変数がアクセスする方が速いということでした。私は、管理されていないコードの世界では、スタックがどのように動作し、値がどのように参照されるかを実際に示すことができます。しかし、私はマネージコードの世界がカバーの下でもっと複雑になる可能性があることを知っています。私の質問は次のとおりです。管理されていないコードのメモリ管理とプログラムフローの基本的な考え方は、一般的にマネージコードの世界に投影されますか?
最終的にKeeperOfTheSoulの助けを借りて、これをFileInfoオブジェクトをどうやって模倣したかを追跡することができました。そのため、RhinoMockタグをこのクエスチョンに追加しました。
FileInfoオブジェクトがファイルシステムに直接アクセスしているとは思いません。私たちのテストでは、実際にRhinoMockを使ってFileInfoオブジェクトを嘲笑していました。これは良い点をもたらしました。私たちのテストを遅くしていたRhinoMockフレームワークでしたか? – LJM
おそらく、私はrhinoモックが、JITの最適化が効率的になるのを阻止するのに十分なことはありますか? –
私は検証するためにいくつかのテストを実行しましたが、それは確かに疑わしいオブジェクトのパフォーマンスのように見えます。助けてくれてありがとう。 – LJM