Contatore FPS e profilazione del rendering
Senzoukria include due letture del frame rate, un contatore globale che si attiva con Ctrl+Maiusc+F e un contatore per grafico accanto all'asse dei prezzi, più un profilatore delle passate di disegno i cui tempi vanno in console nelle build di sviluppo o su richiesta esplicita.
Senzoukria · Documentazione · Aggiornato a settembre 2026
Dove trovarlo
- Contatore globale
- Ctrl+Maiusc+F lo attiva e disattiva; la scelta viene ricordata tra un avvio e l'altro
- Contatore del grafico
- In alto nel grafico, a sinistra dell'asse dei prezzi, aggiornato ogni 500 ms
- Nitidezza del rendering
- Impostazioni → Prestazioni → 1×, 1,5× o 2×; predefinito 1,5×
- Uscita del profilatore
- Righe di console con tag [fp-perf], una al secondo, build di sviluppo o attivazione esplicita
A cosa serve
Il contatore FPS globale è una striscia diagnostica pensata per essere accesa trenta secondi e leggere un numero. Mostra i fotogrammi al secondo dell'ultimo secondo, il tempo del fotogramma peggiore di quel secondo in millisecondi, la frequenza di aggiornamento dello schermo rilevata (mediana di 60 intervalli tra fotogrammi misurati al montaggio) e, dopo che la finestra riprende il focus, la media e il minimo degli FPS misurati mentre era in secondo piano. Quest'ultima cifra risponde alla domanda se l'applicazione venga rallentata dietro un'altra applicazione. Quando Windows chiede il movimento ridotto, la striscia dice «animazioni OFF (Windows)», perché lo sfondo è allora congelato di proposito.
Il contatore del grafico è una misura diversa: da settembre 2026 conta i fotogrammi che il thread principale consegna davvero allo schermo mentre il grafico è visibile, non il numero di ridisegni. Segue quindi la frequenza del pannello (60, 100, 144, 240) e cala solo su uno scatto reale. Il conteggio dei ridisegni è rimasto nei log [fp-perf], sotto painted=. Una pausa di oltre un secondo senza fotogrammi, per esempio un grafico nascosto o una finestra ridotta a icona, fa ripartire la misura invece di contare come stallo, e il grafico stesso si disegna comunque solo quando qualcosa cambia, attraverso un ciclo di fotogrammi che tiene al massimo un fotogramma in attesa e nessuno quando il grafico è nascosto.
Letture e soglie
| Lettura | Verde | Giallo | Rosso |
|---|---|---|---|
| Contatore globale (rispetto alla frequenza rilevata) | ≥ 92% della frequenza di aggiornamento | ≥ 70% | sotto il 70% |
| Contatore del grafico (rispetto al migliore delle ultime 10 letture) | ≥ 90% del picco recente e ≥ 50 fps | ≥ 70% del picco, oppure da 30 a 49 fps | sotto il 70% del picco, oppure sotto 30 fps |
| Statistiche in secondo piano | minimo ≥ 60 fps | minimo sotto 60 fps | — |
Impostazioni
| Impostazione | Predefinito | Che cosa cambia |
|---|---|---|
| Nitidezza del rendering | 1,5× | Limite al rapporto di pixel del canvas. 1× dimezza i pixel sugli schermi HiDPI; 2× è il più nitido e il più pesante. Opzioni: 1×, 1,5×, 2×. |
| Modalità prestazioni | Bilanciata | Prestazioni imposta 1×, Bilanciata 1,5×, Precisione 2× (insieme ad altre manopole). Toccare una manopola a mano porta la modalità su Manuale. |
| Log di prestazione | Disattivi nelle build di rilascio | Imposta la chiave localStorage senzoukria.perfLogs a 1 e ricarica per abilitare le righe di console [fp-perf] su una build di rilascio. |
Profilazione delle passate di disegno
Ogni passata di disegno del renderer del footprint (celle, profili, livelli GEX, marcatori delle notizie, commit del pannello DOM, commit React) è cronometrata da un profilatore condiviso. Una volta al secondo il canvas lo svuota e stampa in console una riga ordinata: millisecondi totali e medi per passata, la passata peggiore, il numero di commit React e il costo del pannello DOM. Il profilatore non tiene alcun riferimento al canvas o a React, e le finestre staccate hanno una loro istanza, quindi le misure non si mescolano mai tra finestre.
Questi log sono silenziosi nelle build distribuite perché la console della WebView conserva ciò che le viene scritto, e un log al secondo per ore è un costo in memoria. Sono attivi con npm run dev e si possono abilitare sulla macchina di un utente con la chiave esplicita indicata sopra.
Limiti e trappole
Come leggere i numeri:
- Il contatore del grafico si ferma invece di riportare zero: quando il grafico è nascosto o la finestra è inattiva, la misura è in pausa e riparte da zero al fotogramma successivo.
- I colori sono relativi al picco recente, quindi gli stessi 120 fps si leggono verdi su uno schermo a 120 Hz e ambra su uno a 240 Hz.
- La frequenza di aggiornamento rilevata è una mediana degli intervalli tra fotogrammi; su una macchina che non regge può risultare inferiore alla frequenza reale del pannello.
- Il contatore globale gira con un proprio ciclo requestAnimationFrame; lascialo spento fuori dalla diagnostica.
- Le misure in secondo piano richiedono che la finestra perda il focus e lo riprenda; la striscia mostra solo l'ultimo periodo in secondo piano.
Pagine correlate
- Asse dei prezzi e decimali
- Schermata di caricamento dello storico
- Il miglior software di trading orderflow
- Scarica Senzoukria
Questa pagina in altre lingue
Domande frequenti
- Come mostro il contatore FPS?
- Premi Ctrl+Maiusc+F. Premilo di nuovo o clicca ✕ per nasconderlo. Lo stato è salvato sotto senz.fpsMeter e ripristinato all'avvio successivo.
- Il contatore del grafico segna 45 fps su un monitor a 144 Hz. Che cosa significa?
- Significa che il thread principale ha consegnato 45 fotogrammi nell'ultimo secondo mentre il grafico era visibile, quindi qualcosa lo sta trattenendo. Il colore è relativo: il verde richiede almeno il 90% del migliore delle ultime dieci letture e 50 fps, e sotto i 30 fps è rosso qualunque sia lo schermo. Confronta con il contatore globale, che misura il ciclo di animazione rispetto alla frequenza rilevata.
- Dove sono i numeri della profilazione del rendering?
- Nella console di sviluppo come righe [fp-perf] una volta al secondo, disponibili nelle build di sviluppo oppure dopo aver impostato la chiave localStorage senzoukria.perfLogs a 1 e ricaricato.