Xamarin.Mac performansı

Genel Bakış

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

ama yararlı olabilir macOS'a özgü bir dizi öneri vardır.

Modern hedef çerçeveyi tercih

Farklı performans özelliklerine ve özelliklerine sahip Xamarin.Mac uygulamasında kullanılabilen birden çok Hedef Çerçeve vardır.

Mümkün olduğunda, destek eklemek için Modern'i tercih eder ve bağımlı kitaplıklarla çalışabilirsiniz. Yalnızca Modern Hedef Çerçeve bağlamaya izin verir ve bu da derleme boyutlarını önemli ölçüde azaltabilirsiniz. Tam derlemelerin AOT derlemesi büyük son paketler ürettiği için bu durum özellikle AOT'nin etkinleştirilmesi sırasında önemli hale gelir.

Bağlantıcıyı etkinleştirme

Hem yükleme hem de "Tam Zamanında" (JIT) başlatma süresi, son ikili dosyalarınıza göre doğrusal olarak ölçeklendirin. Bunu geliştirmenin en kolay yolu, bağlantıcı ile birlikte eski kodu kaldırmaktır.

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

Uygun olduğunda AOT'yi etkinleştirme

Başlatma performansının bir diğer yüzü de derlemelerin makine koduna JIT derlemesidir. Zamanından Önce (AOT) derlemesi başlangıç süresini önemli ölçüde azaltabilir, ancak AOTbelgelerinde ele alınmıştır.

Yüksek performansa sahip temsilciler olduğundan emin olmak

Birçok Xamarin.Mac uygulaması , veya gibi Cocoa NSCollectionView görünümlerini NSOutlineViewNSTableView ortalar. Bu görünümler genellikle DelegateDataSource Cocoa'ya sizin de sağlar ve sınıflarla destekleniyor ve nelerin görüntüleniyor olduğuyla ilgili soruları yanıt veriyor.

Bu giriş noktalarının çoğu genellikle çağrılır, bazen kaydırmada saniye başına birden çok kez.

Kullanıcı arabiriminin engellenmesini önlemek için bu işlevlerin kolayca hesaplanan veya önceden önbelleğe alınmış bilgileri kullanan değerleri iade edin.

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 gibi) içeren birçok Cocoa görünümleri, görünümleri oluşturmak ve yeniden oluşturmak için NSCollectionViewNSOutlineViewNSTableView API'ler sağlar. Bunlar, paylaşılan öğelerden havuzlar oluşturmakta ve görünümler arasında hızla kaydırılırken performans sorunlarının önüne geçebilirsiniz.

Zaman uyumsuz kullanın ve kullanıcı arabirimini engelleme

Masaüstü uygulamaları genellikle büyük miktarlardaki verileri işler ve zaman uyumlu bir işlem için 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ılara bildirmek için Apple HIG'sinde not alınan NSProgressIndicator'ı veya diğer seçenekleri kullanmayı göz önünde bulundurabilirsiniz.