金曜日のリファクタリング時間です!!!
SQLステートメントを生成するために使用するオブジェクトがあります。
oDb.Fromは1回設定されます。次に、メタデータは、すべてを結合して返すまで、時間の経過とともに結合を追加する可能性があります。
つまり、Qは、構文oDb.From + =をsbFrom.Append()に置き換える前に何回保持するかということです。
それは#3、4、または15回ですか?
それとも、それは本当にコンテンツの長さの問題ですか?もしそうなら、魔法の#は何ですか?
TIA
金曜日のリファクタリング時間です!!!
SQLステートメントを生成するために使用するオブジェクトがあります。
oDb.Fromは1回設定されます。次に、メタデータは、すべてを結合して返すまで、時間の経過とともに結合を追加する可能性があります。
つまり、Qは、構文oDb.From + =をsbFrom.Append()に置き換える前に何回保持するかということです。
それは#3、4、または15回ですか?
それとも、それは本当にコンテンツの長さの問題ですか?もしそうなら、魔法の#は何ですか?
TIA
完全に非科学的な経験則:パフォーマンスの向上のためではなく、(うまくいけば)良い習慣から、3つ以上の要素に対してそれを行います。
String に 3 つ以上の要素を追加する必要がある場合は、ほとんどの場合 StringBuilder を使用します (3 つ以上追加すると、人々が私のコードに追加し始めると、必然的により多くの要素が追加されることがわかりました...そのため、StringBuilder は既に存在します。彼ら)。
http://www.codinghorror.com/blog/archives/001218.htmlを読む
このStringBuilderクラスは、巨大な文字列を構築しているシナリオ向けに設計されており、通常の文字列連結を使用すると実際には遅すぎます。
扱っている文字列の長さの種類によっては、実際にはまったく違いがない可能性があります。最も使いやすいものを使用してください。
長さが1〜5 MBを超えると予想されるもの、または小さなチャンクに多くの文字列を割り当てるものなら何でもいいと思います。
アルゴリズムの連結数が O(n) を超える場合は、StringBuilder を使用します。連結数が O(1) の場合、ほとんどの場合、読みやすさは何の影響もありません (文字列が非常に大きい場合を除きますが、これはあまり頻繁ではありません)。
または、十分に大きくなる文字列があることを知っているとき。(10万文字以上)
それは完全に非科学的ではありません - 私は昔々、.NET 文字列ビルダーが実際に 5 つの連結後により効率的になるという記事を読みました。これは、通常、String Builder を使用する場合です。
また、これに関しては読みやすさが本当に重要だと思います。また、場合によっては、両方よりも文字列形式を好みます。