ASP.NET Web API'si harika bir teknoloji. Web API'leri yazmak o kadar kolay ki, birçok geliştirici uygulamalarını iyi bir uygulama performansı için yapılandırmaya zaman harcamaz. Bu makalede, ASP.NET Web API'lerinin performansını artırmak için 8 tekniği ele alacağım. 1) En hızlı JSON serileştirme aracını kullanın JSON'un serileştirilmesi, tüm ASP.NET Web API'sinin performansı üzerinde kritik bir etkiye sahiptir. Projelerimden birinde, JSON.NET serileştiricisinden bir buçuk yıl boyunca ServiceStack.Text'e geçtim. Web API'nin performansının yaklaşık %20 arttığını ölçtüm. Bu serileştirme aracını kesinlikle denemenizi tavsiye ederim. İşte popüler serileştirme araçlarının performansına dair bazı yakın tarihli karşılaştırma verileri.
SerializerPerformanceGraf Kaynak: yanan keşiş Güncelleme: StackOverflow'un bugüne kadar iddia ettikleri JSON serileştirme aracı olan Jil'i kullandığı anlaşılıyor. Test verisi, GitHub sayfası Jil serileştiricisinde bulunabilir. 2) DataReader'dan JSON'u manuel olarak serileştirmek Bu yaklaşımı projelerimde kullandım ve performans avantajları elde ettim. DataReader'den JSON dizileri manuel olarak oluşturabilir ve gereksiz nesne oluşturmadan kaçınabilirsiniz; böylece DataReader'den değerler alıp nesnelere yazmanız, sonra o nesnelerden değerler alıp JSON Serileştiricisi ile JSON oluşturmak zorunda kalmazsınız. StringBuilder kullanarak JSON oluşturun ve WebAPI'de yanıtın içeriği olarak StringContent'i sonunda döndürün.
Bunu yapmanın daha fazla yolunu Rick Strahl'ın blogunda inceleyebilirsiniz 3) Mümkün olduğunca diğer protokol formatlarını (protokol tamponu, mesaj paketi) kullanın Projenizde JSON kullanmak yerine Protokol Buffers veya MessagePack gibi diğer mesaj formatlarını kullanabiliyorsanız. Protokol tamponlarının serileştirmede çok hızlı olması değil, aynı zamanda geri dönen sonuçlarda JSON'dan daha hızlı biçimlendirilmeleri nedeniyle büyük bir performans avantajı elde edeceksiniz. 4) Sıkıştırmayı uygula ASP.NET Web API'nizde GZIP veya Deflate kullanın. Sıkıştırma, yanıt paketlerinin boyutunu ve yanıt verebilirliğini azaltmanın basit ve etkili bir yoludur. Bu çok gerekli bir özellik, blog sürümde sıkıştırma hakkında daha fazla makaleyi ASP.NET Web API GZip sıkıştırma ActionFilter ile 8 satır kod ile inceleyebilirsiniz. 5) Önbellekleme kullanın Web API yönteminde çıktı önbellekleme kullanımı oldukça önemli. Örneğin, çok sayıda kullanıcı günde sadece bir kez değişen yanıt içeriğine erişirse. Kullanıcı şifrelerini hafızaya önbelleğe almak gibi manuel önbellekleme uygulamak istiyorsanız, blog yazıma bakınız: Web API'de önbelleklemeyi uygulamanın basit yolu ASP.NET. 6) Mümkün olduğunca tipik ADO.NET kullanın Manuel olarak yazılmış ADO.NET veritabanından değerleri almanın en hızlı yolu hâlâ. Web API'lerinizin performansı sizin için gerçekten önemliyse, ORM kullanmayın. En popüler ORM'ler arasında performans karşılaştırmalarını görebilirsiniz. ORMMapper
Şık ve el yazısıyla yazılmış getirme kodları hızlıdır ve gerçekten de tüm ORM'ler üçünden daha yavaştır. LLBLGen bir resultet önbelleğe sahip hızlı ama result set'i tekrar tekrar yineleyip nesneyi bellekte tekrar başlatmak zorunda. 7) Web API'sinde asenkron bir yaklaşım uygulamak Asenkron bir Web API hizmeti kullanmak, Web API'lerinin işlediği HTTP isteği sayısını önemli ölçüde artırır. Uygulama basit, sadece asenkron anahtar kelimeyi kullanın ve metodunuzun dönüş değeri tipini Görev olarak değiştirin.
8) Birden fazla sonuç kümesi ve küme kombinasyonları döndürür Transfer sayısını azaltmak sadece birden fazla veritabanı için değil, aynı zamanda sonuç kümelerinin gücünü kullanmanızı sağlayan Web API'leri için de faydalıdır. Bu, DataReader'dan birden fazla sonuç seti çıkarabileceğiniz anlamına gelir, aşağıdaki demo koduna bakabilirsiniz:
Bir Web API'sinden tek bir yanıtla birden fazla nesneyi döndürebilirsiniz, geri dönen nesneleri birleştirip aşağıdaki nesneleri döndürebilirsiniz:
Bu, WEB API'nize gönderilen HTTP isteklerini azaltır. Bu makaleyi okuduğunuz için teşekkürler.
|