[C# 벤치마크] C# BenchMarkDotNet ParamsSource 사용법
- C#/C# 문법
- 2021. 12. 17. 19:14
소개
- 안녕하세요. 오늘은 BenchMarkDotNet에 대해서 학습해 보려고 합니다.
- 그 중에서도, IntroParamsSource 관련 내용에 대해서 알아 보도록 하겠습니다.
참조
IntroParamsSource
- [ParamsSource] Attribute를 사용하면 IEnumerable로 지정된 Collection의 값들을 사용하여 성능을 측정할 수 있습니다.
- 이 값들은 조합하여 성능을 측정합니다.
- 예제 코드를 작성하여 실행 결과를 확인해 보도록 하겠습니다.
예제코드
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.Collections.Generic;
using System.Threading;
namespace BenchMarkTest
{
class Program
{
static void Main(string[] args)
{
var summary = BenchmarkRunner.Run<IntroParamsSource>();
}
}
[MemoryDiagnoser]
public class IntroParamsSource
{
[ParamsSource(nameof(ValuesForA))]
public int A { get; set; }
[ParamsSource(nameof(ValuesForB))]
public int B;
public IEnumerable<int> ValuesForA => new[] { 100, 200, 300, 400, 500 };
public static IEnumerable<int> ValuesForB() => new[] { 10, 20, 30, 40 };
[Benchmark]
public void BenchMark() => Thread.Sleep(A + B + 10);
}
}
실행 결과
- 위의 예제를 기준으로, int A는 100, 200, 300, 400, 500 이 설정되며, int B는 10, 20, 30, 40 값이 설정됩니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] 예외 필터 사용방법 (0) | 2021.12.28 |
---|---|
[C# 문법] 사용자 지정 예외 클래스 만들기 (0) | 2021.12.27 |
[C# 문법] Reflection 이용하여 Class 속성, 값 출력하기 (0) | 2021.12.16 |
[C# 문법] XML, JSON, MessagePack 직렬화, 역직렬화 성능 측정(벤치마크) (0) | 2021.12.16 |
[C# 문법] MessagePack ObservableCollection 직렬화, 역직렬화 (0) | 2021.12.16 |
이 글을 공유하기