Xamarin.Mac performansı

Genel bakış

Xamarin.Mac uygulamaları Xamarin.iOS'a benzer ve aynı performans önerilerinin çoğu geçerlidir:

ancak yararlı olabilecek bir dizi macOS özel önerisi vardır.

Modern hedef çerçeveyi tercih edin

Farklı performans özelliklerine ve özelliklerine sahip Xamarin.Mac uygulamasının kullanabileceği birden çok Hedef Çerçeve vardır.

Mümkün olduğunda Modern'i tercih edin ve destek eklemek için bağımlı kitaplıklarla çalışın. Yalnızca Modern Hedef Çerçeve bağlamaya izin verir ve bu da derleme boyutlarını önemli ölçüde azaltabilir. Tam bütünleştirilmiş kodların AOT derlemesi büyük son paketler üretecekçe, bu özellikle AOT'yi etkinleştirirken önemli hale gelir.

Bağlayıcıyı etkinleştirme

Hem yük hem de "Tam Zamanında" (JIT) olan başlangıç süresi, son ikililerinizin boyutuyla biraz doğrusal olarak ölçeklendirilir. Bunu geliştirmenin en kolay yolu bağlayıcı ile ölü kodu kaldırmaktır.

Bu öneri öncelikli olarak Modern Hedef Çerçeve kullanıcıları için geçerli olsa da, Platform Bağlama kullanımı da sınırlı bir performans artışı sağlayabilir.

Uygun olduğunda AOT'yi etkinleştirme

Başlangıç performansının bir diğer özelliği de derlemelerin makine koduna JIT derlemesidir. Zamanından Önce (AOT) derlemesi başlangıç süresini önemli ölçüde azaltabilir, ancak AOT belgelerinde ele alınan bir dizi dezavantajla birlikte gelir.

Yüksek performanslı temsilcilerin olduğundan emin olun

Birçok Xamarin.Mac uygulaması, , NSOutlineViewveya NSTableViewgibi NSCollectionViewCocoa görünümlerinin çevresinde ortalanır. Bu görünümler genellikle Cocoa'ya sağladığınız ve DataSource sınıfları tarafından Delegate desteklenir ve nelerin görüntüleneceğiyle ilgili soruları yanıtlar.

Bu giriş noktalarının çoğu genellikle çağrılır ve bazen kaydırma sırasında saniyede birden çok kez çağrılır.

Kullanıcı arabiriminin engellemesini önlemek için bu işlevlerin kolayca hesaplanmış değerler döndürdiğinden veya önceden önbelleğe alınmış bilgileri kullandığından emin olun.

Görünümleri yeniden kullanmak için Cocoa tarafından sağlanan API'leri kullanma

Birçok alt görünüm veya hücre (, ve NSTableViewgibiNSCollectionViewNSOutlineView) içeren birçok Cocoa görünümü, görünümleri oluşturmak ve yeniden kullanmaya yönelik API'ler sağlar. Bunlar paylaşılan öğelerden oluşan havuzlar oluşturur ve görünümler arasında hızla gezinirken performans sorunlarını önler.

Zaman uyumsuz kullanma ve kullanıcı arabirimini engelleme

Masaüstü uygulamaları genellikle büyük miktarlarda veriyi işler ve zaman uyumlu bir işlemde bekleyen kullanıcı arabirimi iş parçacığını engellemek çok kolaydır.

Mümkün olduğunda, kullanıcı arabiriminin engellenmesini önlemek için zaman uyumsuz ve iş parçacıkları kullanın.

Uzun süre çalışan işlemler için, kullanıcıları bilgilendirmek için Apple'ın HIG'sinde not edilen NSProgressIndicator veya diğer seçenekleri kullanmayı göz önünde bulundurun.