CategoriesProgramming

Benchmark Code dengan BenchmarkDotNet

Saat ini performa system merupakan hal yang sangat penting dan perlu diperhatikan bagi para developer. Semakin baik performa suatu system tentu akan membuat pengguna semakin nyaman menggunakannya. Untuk itu developer seperti kita perlu untuk melakukan Benchmark Code.

Apa itu Benchmark?

Benchmark adalah metode/langkah untuk mengukur serangkaian kode yang ada dalam sebuah fungsi. Dengan melakukan benchmark, kita bisa membandingkan kinerja kode mana yang lebih baik sehingga dapat mengoptimalkan system kita.

Untuk melakukan Benchmark Code, kita akan menggunakan tools dari DotNet yaitu BenchmarkDotNet.

Langkah Benchmark Code

  1. Buat Project baru
  2. Install BenchmarkDotNet Nuget package
  3. Buat Benchmark class
  4. Buat BenchmarkRunner instance
  5. Jalankan aplikasi dalam release mode

Tools yang digunakan

  • .NET 5 SDK
  • VS/VSCode
  • BenchmarkDotNet from Nuget

1. Buat Project Baru

Buat project Console App (NET Core) seperti gambar dibawah.

2. Install BenchmarkDotNet Nuget package

Cari BenchmarkDotNet di Nuget Package Manager, lalu install versi terbaru ke project kita.

3. Buat Benchmark class

Kali ini kita akan mencoba Benchmark metode parse string to integer dengan menggunakan beberapa macam function.

Pertama kita buat BenchmarkIntParserclass dulu.

BenchmarkIntParser.cs

    [MemoryDiagnoser]
    [Orderer(BenchmarkDotNet.Order.SummaryOrderPolicy.FastestToSlowest)]
    [RankColumn]
    public class BenchmarkIntParser
    {
        public const string NumberAsString = "2021";
        private static readonly IntParser Parser = new IntParser();

        [Benchmark]
        public void ParseNumberFromString()
        {
            Parser.ParseIntFromString(NumberAsString);
        }

        [Benchmark]
        public void ConvertIntFromString()
        {
            Parser.ConvertIntFromString(NumberAsString);
        }

        [Benchmark]
        public void GetIntFromStringManual()
        {
            Parser.GetIntFromStringManual(NumberAsString);
        }
    }

Terlihat ada attribute Benchmark di tiap function, itu menandakan bahwa function tersebut akan kita masukkan dalam perhitungan Benchmark.

4. Buat BenchmarkRunner instance

Untuk membuat BenchmarkRunner instance, kita tinggal ubah Program.cs seperti ini

class Program
{
    static void Main(string[] args)
    {
        BenchmarkRunner.Run<BenchmarkIntParser
>();
    }
}

5. Jalankan aplikasi dalam release mode

Jalankan aplikasi dan tunggu hasilnya. Untuk hasil benchmark diatas adalah seperti ini

Kesimpulan

Dari hasil benchmark code, kita bisa simpulkan mana function yang lebih baik dari berbagai segi perhitungan. Dengan begitu kita bisa mengoptimalkan aplikasi kita.

Kira kira fungsi apa lagi yang perlu kita benchmark ya?

Selamat mencoba 🙂

Published by Andhika K Aufa

ASP.Net developer and game addict

Leave a Reply

Your email address will not be published.