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ı, , NSOutlineView
veya NSTableView
gibi NSCollectionView
Cocoa 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 NSTableView
gibiNSCollectionView
NSOutlineView
) 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.