Výkon Xamarin. Mac

Přehled

Aplikace Xamarin. Mac jsou podobné Xamarin. iOS a mnoho stejných návrhů výkonu je možné:

Existuje však několik macOS specifických návrhů, které mohou být užitečné.

Preferovat moderní cílové rozhraní

Aplikace Xamarin. Mac má k dispozici několik cílových rozhraní s různými charakteristikami výkonu a funkcemi.

Pokud je to možné, upřednostnit moderní knihovny a pracovat se závislými knihovnami pro přidání podpory. Pouze moderní cílové rozhraní umožňuje propojení, které může významně snížit velikosti sestavení. To se bude obzvláště důležité při povolování stromu AOT, protože kompilace stromu AOT úplných sestavení může vytvářet velké konečné sady.

Povolení linkeru

Čas spuštění, jak v zatížení, tak i v čase (JIT) se poměrně lineárně škáluje s velikostí konečných binárních souborů. Nejjednodušší způsob, jak to vylepšit, je odebrání mrtvého kódu pomocí linkeru.

I když tento návrh primárně platí pro moderní cílové uživatele rozhraní .NET Framework, použití propojení platforem může také poskytovat omezené zvýšení výkonu.

Povolit v případě potřeby AOT

Další omezující vlastnost výkonu při spuštění je kompilace sestavení JIT do strojového kódu. Kompilace v předstihu (AOT) může výrazně zkrátit čas spuštění, ale přináší řadu kompromisů popsaných v dokumentaci AOT.

Zajistěte, aby prováděli delegáty

Mnoho aplikací Xamarin. Mac se zacentruje v zobrazeních kakaa, jako jsou NSCollectionView , NSOutlineView nebo NSTableView . Tato zobrazení jsou často založená Delegate na technologii a DataSource třídy, které poskytnete kakau, a odpovídají na to, co se má zobrazit.

Mnohé z těchto vstupních bodů jsou často vyvolány, někdy při posouvání několikrát za sekundu.

Ujistěte se, že tyto funkce vrací hodnoty, které jsou již uloženy v mezipaměti, aby se zabránilo blokování uživatelského rozhraní.

Pro opětovné použití zobrazení použít rozhraní API v kakau

Mnoho zobrazení kakaa, které obsahují mnoho podřízených zobrazení nebo buněk (například NSCollectionView , NSOutlineView a NSTableView ), poskytuje rozhraní API pro vytváření a opakované používání zobrazení. Tyto vytváření fondů sdílených položek a zabraňují problémům s výkonem při rychlém procházení zobrazení.

Použít asynchronní a neblokovat uživatelské rozhraní

Aplikace klasické pracovní plochy často zpracovávají velké objemy dat a je velmi snadné zablokovat vlákno uživatelského rozhraní, které čeká na synchronní operaci.

Kdykoli je to možné, použijte asynchronní a vlákna, aby nedocházelo k blokování uživatelského rozhraní.

V případě dlouhotrvajících operací zvažte použití NSProgressIndicator nebo dalších možností popsaných v HIG společnosti Apple pro upozorňování uživatelů.