Vue d’ensemble
Le SDK unifié PlayFab offre aux développeurs un contrôle précis de l’utilisation de la mémoire en prenant en charge les hooks d’allocation personnalisés, le nettoyage explicite des ressources et la gestion sûre des opérations asynchrones. Il est ainsi adapté aux environnements hautes performances ou aux ressources limitées, comme les jeux et les plateformes embarquées.Allocation de mémoire personnalisée
Le SDK vous permet de définir des fonctions personnalisées d’allocation et de libération de mémoire à l’aide dePFMemoryHooks. Vous pouvez ainsi intégrer le SDK à vos systèmes de gestion de la mémoire existants, tels que les arènes, les pools ou les allocateurs propres à une plateforme.
Définition de hooks de mémoire personnalisés
- Les hooks doivent être définis avant l’appel à
PFServicesInitialize. - Ils ne peuvent pas être modifiés une fois le SDK initialisé.
- S’ils ne sont pas définis, le SDK utilise par défaut l’allocation standard (
malloc/free).
Opérations asynchrones
La plupart des appels d’API du SDK sont asynchrones. Chaque appel asynchrone nécessite unXAsyncBlock valide qui doit rester en vie pendant toute la durée de la requête.
Utilisation sûre de XAsyncBlock
- N’allouez pas
XAsyncBlocksur la pile, sauf si vous pouvez garantir sa durée de vie. - Libérez la propriété s’il est alloué dynamiquement, et effectuez le nettoyage dans le rappel.
- Évitez de capturer des références ou des pointeurs invalidés dans la lambda.
Nettoyage des ressources
Le SDK utilise des handles (par exemple,PFEntityHandle, PFServiceConfigHandle) qui doivent être fermés explicitement lorsqu’ils ne sont plus nécessaires.
Fermeture des handles et désinitialisation
- Fermez toujours les handles PlayFab pour éviter les fuites.
- Attendez la fin de
PFServicesUninitializeAsyncavant l’arrêt.
Pratiques exemplaires
- Définir les hooks de mémoire tôt : avant tout autre appel d’API PlayFab.
- Éviter les fuites de mémoire : fermez les handles et gérez soigneusement les ressources asynchrones.
- Utiliser des profileurs de mémoire : en particulier sur les plateformes aux budgets mémoire serrés.
- Utiliser des allocateurs en pool : pour les allocations fréquentes ou critiques en termes de performances.
