|
VB.NETのString型は、インスタンスが不変となっている。これは、一度設定した内容を変更しても、元のインスタンスは保持され、新しくインスタンスが生成され、その参照が更新されることになる。つまり、小刻みに変更をすると、その都度、インスタンスが作られ、そのStringが生きている間、メモリを(ムダに)消費することになるし、処理速度も 遅くなる。 一方、クラスとして、StringBuilder がある。これは、可変(長)文字列で、文字を変更したり、追加、削除しても、インスタンスそのものが更新されるタイプとなっている。Stringに比べて、若干取っつきにくい面があるが、 リソースや速度の点で有利とされている。両者の処理速度を比較してみた。 ●比較対象
String型とStringBuilderクラス ●結果 いずれもマシンは、CPU:ペンティアム4 2GHz、メモリ:1024MB、OS:Windows XP Pro SP2 となっている。 ○String 約5,000 ms ○StringBuilder 約16 ms 以下 ●考察 圧倒的に、StringBuilderが速い。Stringのコンセプトが分からなくなるほどの差である。 ●結論 ちょっとした文字列の操作では、String が扱い良く便利であるが、長大あるいは更新の激しい文字列処理では、絶対に、StringBuilderを使用すべきである。 ●実験のプログラムリスト Dim Kai As Integer = 50000 Dim i As Integer |