C# アプリケーションでは、パフォーマンスのために配列コピーを最適化することが重要です。この調査では、3 つの配列を 1 つの 3 次元配列にコピーするパフォーマンスを評価し、強化することを目指しています。
double[] sortedIndex, sortedInstances, sortedLabels; double[] leftnode = new double[sortedIndex.Length, 3];
調査で提示された最初のコードは、ソースの要素をコピーするためにネストされたループを利用しています。配列を宛先配列 leftnode に格納します。ただし、このアプローチでは、ループの反復的な性質によりパフォーマンスが低下します。
パフォーマンスの問題に対処するには、Buffer.BlockCopy を使用する代替アプローチをお勧めします。このメソッドは、バイト レベルでメモリ操作を最適化することで、プリミティブ型配列の高速かつ効率的なコピーを容易にするように特別に設計されています。
Buffer.BlockCopy(sortedIndex, 0, leftnode, 0, sizeof(double) * sortedIndex.Length); Buffer.BlockCopy(sortedInstances, 0, leftnode, sizeof(double) * sortedIndex.Length, sizeof(double) * sortedInstances.Length); Buffer.BlockCopy(sortedLabels, 0, leftnode, sizeof(double) * sortedIndex.Length + sizeof(double) * sortedInstances.Length, sizeof(double) * sortedLabels.Length);
パフォーマンス ベンチマークでは、Buffer.BlockCopy を使用した大幅な改善が明らかになりました。ネストされたループアプローチと比較して。この最適化は、大規模な配列が関係するシナリオで特に顕著です。
Buffer.BlockCopy メソッドは、C# アプリケーションで配列をコピーするための、より効率的で最適化されたソリューションを提供します。このアプローチを採用すると、特に大規模なデータセットを扱う場合に顕著なパフォーマンスの向上が得られます。
以上がパフォーマンスを向上させるために C# で配列のコピーを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。