[C# 벤치마크] BenchMarkDotNet IntroArgument
- C#/C# 문법
- 2021. 12. 14. 18:23
소개
- 안녕하세요. 오늘은 BenchMarkDotNet에 대해서 학습해 보려고 합니다.
- 그 중에서도, IntroArguments 관련 내용에 대해서 알아 보도록 하겠습니다.
IntroArguments
- [Arguments]를 사용하면 값 집합을 제공할 수 있습니다.
- 모든 값은 컴파일 타임 상수여야 합니다.
- [Arguments]를 [Params]와 결합할 수도 있습니다.
- 결과적으로 params 값의 각 조합에 대한 결과를 얻게 됩니다.
예제코드
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Diagnosers;
using BenchmarkDotNet.Running;
using System.Threading;
namespace RegexTest
{
class Program
{
static void Main(string[] args)
{
var summary = BenchmarkRunner.Run<IntroArguments>();
}
}
[MemoryDiagnoser]
public class IntroArguments
{
[Params(true, false)]
public bool AddExtra5Milliseconds;
[Benchmark]
[Arguments(100, 10)]
[Arguments(200, 20)]
public void BenchMarkMethod(int a, int b)
{
if(AddExtra5Milliseconds)
{
Thread.Sleep(a + b + 5);
}
else
{
Thread.Sleep(a + b);
}
}
}
}
- 위와 같이 Params, Arguments Attribute를 사용하여 벤치마크롤 실행해 보았습니다.
실행 결과
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 벤치마크] BenchMarkDotNet IntroBasic (0) | 2021.12.14 |
---|---|
[C# 문법] C# 현재 디렉토리 위치 변경하는 방법 - Directory.SetCurrentDirectory 메서드 (0) | 2021.12.14 |
[C# 벤치마크]BenchMarkDotNet 사용법 - RunStrategy 선택 (0) | 2021.12.13 |
[C# 문법] Reference Tuple vs Value Tuple 성능 비교 (0) | 2021.12.08 |
[C# 문법] 정적 Regex, 객체 생성 Regex 성능 비교 (0) | 2021.12.08 |
이 글을 공유하기