私はいくつかのレガシーコードを更新することを任されており、その一部の実行時間を本当に短縮する必要があります. 以下のリストはかなり頻繁に読み込まれます。時間を約 1 分から約 15 秒に短縮することができましたが、実際にはさらに短縮する必要があります。次のコード行はかなりうまく機能しますが、できる限りのことを絞り出そうとしています。
List<MyObject> _moList = new List<MyObject>(DB.GetAll(queryString, parameters, MyObject.Extract));
_moList.AsParallel().ForAll(s => s.RelativeCost = GetRelativeCost(s));
いくつか質問があります。まず、これらの 2 つの行を 1 つの行に結合することは可能ですか。第二に、これを行うとパフォーマンスがまったく向上しますか?
MyObject には約 40 個のプロパティがあり (それが適切かどうかは不明)、GetRelativeCost は時間/CPU サイクルに関してはやや高価です (したがって、並列実行)。
どんな助けでも大歓迎です!
PS私は他の角度からも取り組んでおり、特にGetRelativeCostの「コスト」を削減しようとしていますが、ユーザーに受け入れられるようにするために、これから取得できるすべてのサイクルを取得する必要があります。