Dotnet Object Mapping Benchmark
Crud işlemi yapmak işimizin doğasında var. Peki bunu yaparken doğrudan DbModel’ine karşılık gelen class’ları mı her yerde doğrudan kullanıyoruz, elbette ki hayır. Bunun yerine use-case’e göre veri korunaklığı görevini üstlenen Data Transfer Object (DTO) ile işlemlerimizi gerçekleştiriyoruz. Bu durum beraberinde object dönüştürme işlemlerini de getirmektedir.
Peki bu işlemleri yapmakta hangi yöntemi/paketi tercih etmek gerekiyor. Sıklıkla kullanılan AutoMapper mı? Manuel olarak map’leme mi yapmalıyız? Yoksa bu işi daha hızlı yapabilen başka şeyler var mı?
Bu makalede ExpressMapper, AutoMapper, Mapster ve static map işlemlerinin hangisinin daha hızlı çalıştığını Benchmark testi ile anlamaya çalışacağız.
Örnekleme için basit bir entity modeli oluşturarak işe başlayalım.
Entity’leri ve Dto’ları basit anlamda oluşturduğumuza göre Map işlemlerini yapacak classlarımızı yaratabiliriz.
AutoMapper için :
Mapster için oluşturduğum Config :
Map için örnek bir dataya ihtiyacımız olacak. Onu da aşağıdaki gibi örnekledim:
Gelelim map işlemlerini yapacak kısma.
Benchmarks’ları da aşağıdaki gibi örnekledim.
Peki sonuçlar sizce nasıl oldu dersiniz?
Mapster basit anlamda kullanılınca gayet iyi sonuçlar vermektedir. İlerleyen zamanda Mapster kütüphanesi ile ilgili ayrıca bir makale de hazırlamayı planlıyorum, makaleyi yazdığım zaman linkini buraya ekleyeceğim.
Kaynak kodlara erişmek isterseniz :