私は一連のファイルをループで書くプログラムがあります。ファイル名は、メソッドに渡されるオブジェクトのパラメータを使用して作成されます。文字列連結のスピードアップ
public string CreateFilename(MyObject obj)
{
return "sometext-" + obj.Name + ".txt";
}
これを行うよりパフォーマンスな方法があります:
ANTSパフォーマンスプロファイラが、これは犬遅く、私は理由がわからないと言いますか?メソッドは何千回もヒットし、入力オブジェクトが私のコントロール外であり、定期的に変更されるので、この目的のための離散方法以外の良い方法はわかりません。
String.Concat("sometext-", obj.Name, ".txt")
これを行うにはより高速な方法はありません。
'String.Format()'関数を使ってベンチマークしてみましたが、少し速くなっています。しかし、tbh、連結のコストは非常に高くはない、私はこれが不必要な最適化だと思いますか? – Jite
これは 'obj'ごとにどれくらい頻繁に呼び出されますか? –
は 'StringBuilder'を使用します。明らかに 'StringBuilder'はそれを一度しか初期化するための何らかのプライベートフィールドでなければなりません。しかし、それをあなたが望むだけ使うことができます。 –