Identificare problemi di performance generalmente significa fare uno downgrade su una delle tre categorie: frame rate (compute), memory o load time.
Roblox ha una serie di strumenti per identificare problemi di prestazione, alcuni dei quali sono disponibili nel client Roblox (e quindi Studio) e alcuni dei quali sono disponibili solo in Studio. Dove puoi osservare il comportamento del client direttamente, devi utilizzare strumenti per diagnosticare problemi del server.
Strumenti di Diagnosi
Attrezzo | Descrizione | Località | Tasto di scelta Scorciatoia | Ambiente |
Console del sviluppatore | Una console con messaggi in tempo reale, errori e informazioni dettagliate su memoria, rete e Prestazionedel computer. È utile per visualizzare il consumo della memoria, le statistiche della salute del server e le prestazioni dello script e per avviare il client o il server MicroProfiler. | Studio | F9 | Sessioni dal vivo, test di Studio |
MicroProfiler | Uno strumento di debug che mostra quanto tempo di calcolo è speso per le attività per ogni frame. Può generare dump per l'analisi che mostrano un preciso breakdown di singoli frame, rendendolo utile per identificare il problema specifico che causa problemi di prestazioni. Puoi eseguire il profiler sul client o sul Server, a seconda del lato che ha un problema. | In-experience | Ctrl Alt F6 ( ⌘ 1> ⌥1> 3> F63> ) | Sessioni dal vivo, test di Studio |
Barra delle statistiche sulle prestazioni | Una barra degli strumenti con le Statistichedi base sulle prestazioni, tra cui il consumo della memoria, il CPU, ilGPU, i dati di rete inviati e ricevuti e il ping. | In-experience | Ctrl AltF7 ( ⌘ 0> ⌥0> 2> F72> ) | Sessioni dal vivo, test di Studio |
Statistiche di debug | Overlay con informazioni dettagliate su grafica, fisica, traffico di rete e FPS. | In-experience | Shift F1 , ShiftF2 , 1> Shift1> 3> F33> , 6> Shift6> 8> F48> , 1> Shift1> 3> F53> | Sessioni dal vivo, test di Studio |
Dashboard delle prestazioni | Un dashboard con grafici aggregati per l'uso della memoria client e server, la Votaredi frame del client e le rate di crash in tempo reale. È utile per l'analisi dei pattern di performance nel tempo. Vedi Monitorare le prestazioni . | .Dashboard Creatore | N/A | Sessioni dal vivo |
Computazione del server
Il battito cardiaco del server è limitato a 60 FPS per tutte le esperienze, quindi valori più bassi potrebbero indicare un problema di prestazioni. Per controllare il battito cardiaco del server:
Con la Console Developer - nella scheda Lavori del server, espandi la riga Heartbeat e controlla il valore 2>Steps Per Sec2>, che rappresenta il battito cardiaco della tua esperienza.
Con il server MicroProfiler - Guarda la lunghezza di ciascuna frase per vedere se alcune sono più lunghe di 16,67 ms.
Un altro segno di degrado del server heartbeat è l'aumento della latenza (noto anche come ping). Più a lungo il server impiega per completare i suoi compiti ogni frame, più a lungo impiega per elaborare i dati di rete inviati e ricevuti dai client. Per controllare l'average ping per tutti i giocatori connessi a un server, vai alla scheda Server Stats nella Console di sviluppatore.
Computo client
Il tasso di frame predefinito del client è 60 FPS. Tuttavia, gli utenti possono aumentare il loro tasso di frame fino a 240 FPS.
Il tasso di frame differisce notevolmente tra dispositivi. Ad esempio, un PC di alto livello potrebbe essere in grado di "forzare" un problema computazionale e sperimentare solo un tasso di frame rate impercettibile. Se testi su dispositivi più bassi, i problemi tendono ad essere più gravi e quindi più facili da notare.
Per controllare il tasso di frame della tua esperienza:
Nel client, premi ShiftF5 per mostrare la rilevazione delle Sommariodi debug.
Nella scheda Visualizza dello Studio, seleziona Statistiche > Sommario per abilitare le statistiche di debug.
Con il MicroProfiler, puoi controllare il grafico per vedere se il frame prende più tempo di 16.67 ms.
Memoria
Ci sono diversi modi per controllare l'utilizzo della memoria per un'esperienza:
- Apri la Console del sviluppatore e passa alla scheda Memoria. Questa scheda fornisce una panoramica su come viene allocata la memoria. Usa il client invece che Studio per ottenere le letture più accurate.
- Abilita la visualizzazione delle statistiche sulle prestazioni dal menu delle impostazioni nel client per vedere un'overlay con l'utilizzo totale della memoria del client.
L'uso di memoria elevato non è necessariamente indicativo di un problema, ma alcuni suggerimenti che potresti dover investigare di più sono:
- Un'importante percentuale di crash client mostrati nella Dashboard delle prestazioni , in particolare un improvviso uptick che coincide con un Aggiornarmento. Alcuni number of crash sono previsti, ma dovresti investigare se i tuoi tassi di crash aumentano oltre il 2-3%.
- Si verifica un crash mentre si testa su un dispositivo che si vuole che la tua esperienza Assistenza.
- L'uso della memoria del tuo server supera i 3 GB.
Una significativa parte del consumo di memoria di un'esperienza sul client è dovuto alle risorse, come le immagini e le maglie, caricate nella memoria grafica in modo che possano essere visualizzate. Nella Console sviluppatore , puoi visualizzare il consumo di memoria delle risorse sotto le seguenti etichette:
- GraphicsMeshParts - Grafica memoria consumata dai meshi.
- Texture di Grafica ] - Grafica memoria consumata dalle texture.
Caricamenti
Non ci sono strumenti built-in per controllare i tempi di caricamento, ma poiché non richiedono una precisione a livello millesimo, un stopwatch è di solito tutto ciò di cui hai bisogno per capire la tua base di partenza e controllare se hai apportato un miglioramento sostanziale. Puoi usare uno script client in ReplicatedFirst per ottenere un po 'di senso su come le tue modifiche influenzano i tempi di
local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- quattro posizioni decimali
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)
For additional insight, enable Impostazioni dello Studio > Rete > Print Join Size Breakdown , which prints the top 20 instances by size and a percentage breakdown by instance type when you start the experience in Studio.