忍者ブログ
  C#   マクロ   Notepad++
04
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ゼロパディングするのにどの方法が速いか気になった。

検証してみた。



- 検証コード
using System;
using System.Diagnostics;

class p {
	static void Main() {
		int number = 1;
		Console.WriteLine("■{0:000}");
		Instrumentation(() => { StringFormat1(number); });
		Console.WriteLine("■{0:D4}");
		Instrumentation(() => { StringFormat2(number); });
		Console.WriteLine("■ToString(0000)");
		Instrumentation(() => { ToString1(number); });
		Console.WriteLine("■ToString(D4)");
		Instrumentation(() => { ToString2(number); });
		Console.WriteLine("■LeftPad");
		Instrumentation(() => { LeftPad(number); });
	}

	static void Instrumentation(Action action) {
		Stopwatch stopwatch = new Stopwatch();

		stopwatch.Start();
		action();
		stopwatch.Stop();

		Console.WriteLine(stopwatch.Elapsed);
	}
	
	static void StringFormat1(int number) {
		Console.WriteLine("{0:0000}", number);
	}
	
	static void StringFormat2(int number) {
		Console.WriteLine("{0:D4}", number);
	}
	
	static void ToString1(int number) {
		Console.WriteLine(number.ToString("0000"));
	}

	static void ToString2(int number) {
		Console.WriteLine(number.ToString("D4"));
	}
	
	static void LeftPad(int number) {
		Console.WriteLine(number.ToString().PadLeft(4, '0'));
	}
}

- 出力結果

■{0:000}
0001
00:00:00.0003388
■{0:D4}
0001
00:00:00.0002769
■ToString(0000)
0001
00:00:00.0003483
■ToString(D4)
0001
00:00:00.0003160
■LeftPad
0001
00:00:00.0004090

Windows7 64bitだと"{0:D4}"がはやかったけれども
WindowsXP 32bitだと"D4"がはやかった。

つまるところ"0000"と並べるよりかは"D4"と決まった書式で
書いた方が速いと。
PR
この記事にコメントする
名前
URL
本文
パス   
PREV  HOME  NEXT
忍者ブログ  [PR]

(design by 山瀬)