Les problèmes de performance généraux signifient généralement de percer dans l'une des trois catégories : taux de cadence (calculer), mémoire ou temps de chargement.
Roblox a un certain nombre d'outils pour identifier les problèmes de performance, dont certains sont disponibles dans le client Roblox (et donc Studio) et d'autres seulement dans Studio. Bien que vous puissiez observer le comportement du client directement, vous devez utiliser des outils pour diagnostiquer les problèmes du serveur.
Outils de diagnostic
Outil | Description | Emplacement | Raccourci raccourci | Environnement |
Console de développeur | Une console avec des messages de journal en temps réel, des erreurs et des informations détaillées sur la mémoire, le réseau et les performances du script. Il est utile de voir la consommation de mémoire, les statistiques de santé du serveur clé et les statistiques de performance du script et de lancer le client ou le serveur MicroProfiler. | Studio | F9 | Séances en direct, tests Studio |
MicroProfiler | Un outil de débogage qui montre combien de temps de calcul est consacré aux tâches à chaque frame. Il peut générer des dumps pour l'analyse qui montre un détail précis de chaque frame, ce qui peut être utile pour identifier le problème de performance causé par une tâche spécifique. Vous pouvez exécuter le profiler sur le client ou le serveur, en fonction du côté qui a un problème. | Dans l'expérience | Ctrl Alt F6 ( ⌘ 1> ⌥ 1> 3> F63> ) | Séances en direct, tests Studio |
Barre de statistiques des performances | Une barre d'outils avec des statistiques de performance de base, telles que la consommation de mémoire, le CPU, le GPS, les données réseau envoyées et reçues et le temps de ping. | Dans l'expérience | Ctrl AltF7 ( ⌘ 0>⌥0> 2> F72>) | Séances en direct, tests Studio |
Statistiques de débogage | Surlignage avec des informations détaillées autour de la graphique, de la physique, du trafic réseau et des FPS. | Dans l'expérience | Maj F1 , MajF2 , Maj 2> F32> , 5> Maj5> 8> F48> , 1> Maj1> 3> F53> | Séances en direct, tests Studio |
Tableau de bord des performances | Un tableau de bord avec des graphiques agrégés pour l'utilisation de la mémoire du client et du serveur, la évaluerd'affichage du client et le taux de chute du serveur en temps réel. Il est utile pour l'analyse des modèles de performance au fil du temps. Voir Mesurer les performances du serveur. | Tableau de bord du créateur | N/A | Séances en direct |
Calcul du serveur
Le battement du cœur du serveur est limité à 60 FPS pour toutes les expériences, donc des valeurs plus basses peuvent indiquer un problème de performance. Pour vérifier le battement du cœur du serveur :
Avec la Console de développeur - Dans l'onglet Emplois du serveur, élargissez la rangée Heartbeat et vérifiez la valeur 2>Steps Per Sec2>, qui représente le rythme cardiaque de votre expérience.
Avec le serveur MicroProfiler - Regardez la longueur de chaque cadre pour voir si certains prennent plus de 16,67 ms.
Un autre signe d'un serveur cardiaque dégradé est une augmentation de la latence (également appelée ping). Plus le serveur prend fin pour terminer ses tâches chaque cadre, plus il prend longtemps pour traiter les données réseau envoyées et reçues des clients. Pour vérifier le ping moyen pour tous les joueurs connectés à un serveur, allez dans l'onglet statistiques du serveur dans le console de développeur.
Ordinateur client
Le taux de cadence d'affichage par défaut est de 60 FPS. Cependant, les utilisateurs peuvent augmenter leur taux de cadence d'affichage jusqu'à 240 FPS.
Le taux de cadence diffère wildly entre les appareils. Par exemple, un PC de haute gamme pourrait être en mesure de « forcer la force » sur un problème algorithmique et ne subir qu'un taux de cadence d'image imperceptible. Si vous testez sur des appareils inférieurs, les problèmes tendent à être plus graves et donc plus faciles à détecter.
Pour vérifier le taux de cadence de votre expérience :
Dans le client, appuyez sur MajF5 pour afficher le sommairedes statistiques de débogage.
Dans l'onglet Affichage du Studio, sélectionnez Statistiques > Résumé pour activer les statistiques de débogage.
Avec le MicroProfiler, vous pouvez vérifier le graphique pour voir si le cadre prend plus de 16,67 ms.
Mémoire
Il y a plusieurs façons de vérifier l'utilisation de la mémoire pour une expérience :
- Ouvrez la Console du développeur et passez à l'Memory onglet. Cette onglet donne un aperçu de la façon dont la mémoire est allouée. Utilisez le client plutôt que Studio pour obtenir les meilleures lectures.
- Activer la vue statistiques de performance dans le menu des paramètres du client pour voir une surlay avec l'utilisation totale de la mémoire du client.
L'utilisation de mémoire élevée n'est pas nécessairement indiquative d'un problème, mais certaines indications que vous pourriez avoir besoin d'enquêter plus sont :
- Une importante proportion de crashes de clientes montrées dans le tableau de bord des performances , en particular un coup de projectile qui correspond à une mise à jour. Certains chiffres de crashes sont attendus, mais vous devriez enquêter si vos taux de crashes augmentent au-dessus de 2-3%.
- Une erreur se produit pendant le test sur un appareil que vous souhaitez que votre expérience prend en assistance.
- Votre utilisation de mémoire dépasse 3 Go.
Une grande partie de la consommation de mémoire d'une expérience sur le client est due aux ressources, telles que les images et les maillages, chargées dans la mémoire graphique afin qu'elles puissent être rendues. Dans la Console développeur , vous pouvez afficher la mémoire graphique consommée par les ressources sous les étiquettes suivantes :
- GraphicsMeshParts - Mémoire graphique consommée par les mailles.
- GraphicsTexture - Mémoire graphique consommée par les textures.
Charges de temps
Il n'y a pas d'outils intégrés pour vérifier les temps de chargement, mais comme ils ne nécessitent pas de précision au niveau du millième, un minuteur est généralement tout ce dont vous avez besoin pour comprendre votre base de données actuelle et vérifier si vous avez apporté une amélioration substantielle. Vous pouvez utiliser un script client dans ReplicatedFirst pour obtenir une certaine mesure de l'impact de vos modifications sur les temps de chargement, mais ce
local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- quatre places décimales
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)
Pour plus d'informations, activez Paramètres du studio > Réseau > Décomposition de la taille d'impression >, qui imprime les 20 meilleures instances par taille et un pourcentage de décomposition par type d'instance lorsque vous commencez l'expérience dans Studio.