DotnetBenchmark 프로젝트에 설치하기
- 프로젝트 폴더 (csproj있는 폴더)에다가 cmd를 켠다.
- 다음을 입력한다 'dotnet add package BenchmarkDotNet'
DotnetBenchmark 사용하기
- Build Configuration을 Release모드로 바꿔준다.
- Test할 메서드에 [Benchmark]어트리뷰트를 달아준다.
- 메모리 사용량도 측정하고 싶다면 MemoryDiagnoser도 달아준다.
[MemoryDiagnoser] public class SomeTest { private const int TestSize = 1024; [Benchmark] public void TestAlloc() { var list = new List<int>(); for(int i = 0 ; i < TestSize; ++i) list.Add(i); } [Benchmark] public void TestAllocReserve() { var list = new List<int>(TestSize); for(int i = 0 ; i < TestSize; ++i) list.Add(i); } }
- BenchmarkRunner.Run<T>()로 테스트를 수행한다. T는 테스트가 담긴 클래스이다.
public class Program { public static void Main(string[] args) { var summary = BenchmarkRunner.Run<SomeTest>(); } }
실행속도의 평균과 표준편차, 메디안까지 알려준다.
메모리 분석을 켜면 할당된 힙 크기와 각 제네레이션별로 GC가 평균 몇번 일어났는지도 알려준다.
오류 대응
Dotnet SDK도 깔고
Dotnet Runtime도 깔자
https://dotnet.microsoft.com/ko-kr/download/dotnet/8.0
.NET 8.0 다운로드(Linux, macOS 및 Windows)
Linux, macOS 및 Windows용 .NET 8.0 다운로드. .NET은 다양한 유형의 애플리케이션을 빌드하기 위한 무료 크로스 플랫폼 오픈 소스 개발자 플랫폼입니다.
dotnet.microsoft.com
앤간하면 된다.
'언어 > C#' 카테고리의 다른 글
ThreadLocal<T>, AsyncLocal<T> (1) | 2024.12.20 |
---|---|
ValueTask / ValueTask<T> (0) | 2024.05.02 |
Task.Delay (vs Thread.Sleep) (2) | 2024.04.10 |
동시성 개요 (0) | 2024.04.01 |
struct 와 in, readonly (1) | 2024.03.20 |