[C# 벤치마크] BenchMarkDotNet IntroArgument

소개

  • 안녕하세요. 오늘은 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

이 글을 공유하기

댓글

Designed by JB FACTORY