Automapper ve Mapster Performasn Ölçümü
Bu proje, AutoMapper ve Mapster kütüphanelerinin performansını karşılaştırmak için geliştirilmiş bir test uygulamasıdır. ASP.NET Core ve .NET Core ortamında, iki popüler nesne eşleme (object mapping) kütüphanesinin hız, bellek kullanımı ve işlem süresi gibi metriklerde nasıl bir performans sunduğunu analiz etmek amacıyla hazırlanmıştır.
Proje Özeti
AutoMapper ve Mapster, özellikle nesne tabanlı projelerde, DTO (Data Transfer Object) ve ViewModel gibi yapılarda veri taşıma işlemlerini otomatikleştirmek için kullanılan iki farklı kütüphanedir. Bu projede, her iki kütüphane aynı veri seti üzerinde test edilerek aralarındaki performans farkları analiz edilmiştir.
Projenin Amacı
Projenin temel amacı, AutoMapper ve Mapster kütüphanelerinin şu açılardan nasıl performans gösterdiğini belirlemektir:
- Hız: Belirli bir nesne listesi üzerinden hızlı veri eşleme yapma yeteneği.
- Bellek Kullanımı: Veri eşleme işlemleri sırasında bellek tüketim düzeyleri.
- İşlem Süresi: Çok sayıda nesne için yapılan eşleme işleminin toplam süresi.
Kullanılan Yöntem ve Test Aşamaları
- Veri Seti Hazırlama:
- Test işlemi için büyük bir veri seti hazırlanmış ve her iki kütüphanede aynı veri seti üzerinden işlem yapılmıştır. Bu veri seti, projede kullanılan nesnelerin özellikleri açısından yeterli karmaşıklığa sahiptir.
- Eşleme Testleri:
- AutoMapper ve Mapster, aynı veri seti üzerinde eşleme işlemi yaparak, nesne özelliklerinin bir DTO’dan diğerine aktarımı gerçekleştirilmiştir.
- Eşleme işlemi sırasında oluşan işlem süresi, bellekte kaplanan alan ve toplam işlem süresi gibi performans kriterleri ölçülmüştür.
- Performans Karşılaştırması:
- Elde edilen verilerle, her iki kütüphanenin eşleme işlemlerindeki performansı detaylı olarak analiz edilmiştir.
Test Sonuçları ve Performans Analizi
- AutoMapper:
- AutoMapper, yapılandırma gerektiren bir kütüphanedir ve önceden profil oluşturulmasını gerektirir.
- Eşleme işlemleri sırasında nispeten daha yavaş performans gösterebilir, çünkü yapılandırma ve çalıştırma maliyeti yüksek olabilir.
- Mapster:
- Mapster, daha hafif ve hızlıdır, önceden profil oluşturma zorunluluğu olmadan doğrudan veri eşleme yapabilir.
- Bellek kullanımı ve hız açısından AutoMapper’a göre daha avantajlı olabilir, bu da büyük veri setlerinde daha iyi sonuçlar verir.
Sonuç
Bu proje, AutoMapper ve Mapster arasında, veri eşleme işlemlerinde performans farklarını anlamaya yönelik olarak kapsamlı bir karşılaştırma sunmaktadır. Özellikle yüksek performans gerektiren projelerde, Mapster’ın daha iyi performans sergilediği gözlemlenebilir. Ancak, AutoMapper, yapılandırma ve esneklik açısından daha fazla seçenek sunduğundan, ihtiyaçlara göre iki kütüphane arasında seçim yapılabilir.
Bu test uygulaması, benzer performans analizlerini kendi projelerinde yapmak isteyen geliştiricilere, hangi kütüphanenin daha uygun olduğuna dair bir fikir sunmaktadır.