暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C# Trace.WriteLine和Debug.WriteLine的性能问题

342

我们在定位问题时经常需要打印数据输出到控制台,跟踪处理流程,常用的时Trace.WriteLine和Debug.WriteLine。

两者的区别是

1.Trace.WriteLine 在所有模式下输出

2.Debug.WriteLine 在debug模式下输出,release模式不输出

除了以上区别外,它俩都有严重的性能问题,所以定位完问题一定要删除.

下面列出各种方式的运行时间

Debug.WriteLine

1

2

3

4

5

6

7

8

9

int
 i = 0;

DateTime begin = DateTime.Now;

while
 (i < 10000)

{

    
i++;

    
Debug.WriteLine(
"==="
);

}

TimeSpan timeSpan = DateTime.Now - begin;

Console.WriteLine($
"timeSpan : {timeSpan}"
);


输出  timeSpan : 00:00:04.0779556

Trace.WriteLine

1

2

3

4

5

6

7

8

9

int
 i = 0;

DateTime begin = DateTime.Now;

while
 (i < 10000)

{

    
i++;

    
Trace.WriteLine(
"==="
);

}

TimeSpan timeSpan = DateTime.Now - begin;

Console.WriteLine($
"timeSpan : {timeSpan}"
);


输出 timeSpan : 00:00:03.9174826

Console.WriteLine

1

2

3

4

5

6

7

8

9

int
 i = 0;

DateTime begin = DateTime.Now;

while
 (i < 10000)

{

    
i++;

    
Console.WriteLine(
"==="
);

}

TimeSpan timeSpan = DateTime.Now - begin;

Console.WriteLine($
"timeSpan : {timeSpan}"
);


输出 timeSpan : 00:00:00.0189497

所以在使用Debug和Trace输出内容结束后一定要删除


文章转载自跟着阿笨一起玩NET,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论