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

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

あんなのやこんなのを検証していたら
最初のConsole.WriteLine出力だけが異様に時間がかかることが判明。

検証してみた。



- 検証コード

using System;
using System.Diagnostics;

class Class1 {
	static void Main() {
		Instrumentation(() => { Console.WriteLine(string.Empty); } );
		Instrumentation(() => { Console.WriteLine(string.Empty); } );
		Instrumentation(() => { Console.WriteLine(string.Empty); } );
		Instrumentation(() => { Console.WriteLine(string.Empty); } );
	}
	
	static void Instrumentation(Action action) {
		Stopwatch stopwatch = new Stopwatch();
		
		stopwatch.Start();
		action();
		stopwatch.Stop();
		
		Console.WriteLine(stopwatch.Elapsed);
	}
}

- 出力結果

00:00:00.0007026

00:00:00.0002462

00:00:00.0002083

00:00:00.0002094


単に代入だけのメソッドとかに変えてみても
最初のConsole.WriteLineだけはどうしても時間がかかる

Console.WriteLineを使用して検証する場合には、
最初にダミーの出力をしておくのが良いと。


2011/06/10 追記
かなり勘違いしていました。
Console.WriteLineの初速度じゃなくてdelegateの初速度が遅かったです
相当恥ずかしい勘違いをしていました。。。
PR
この記事にコメントする
名前
URL
本文
パス   
PREV  HOME  NEXT
忍者ブログ  [PR]

(design by 山瀬)