Chrome si comporta diversamente se bloccato o in background


1

Il browser Chrome si comporta in modo diverso quando il computer è bloccato o la finestra non è in primo piano? Sto notando che il caricamento della pagina è più lento in tali casi d'uso su Windows.

In tal caso, questo può essere disabilitato tramite una delle loro bandiere?


Questo dipende dalle impostazioni del tuo sistema operativo (che non hai specificato, per cominciare), per i sistemi operativi non server per impostazione predefinita le applicazioni in primo piano hanno la precedenza sulle applicazioni in background. Questo è un comportamento previsto e potrebbe o meno essere che gli sviluppatori abbiano seguito la stessa cosa.
Tamara Wijsman,

1
Ho aggiunto il sistema operativo, era per Windows. Quindi capisco che il sistema operativo lo fa, tuttavia sto notando una differenza rispetto a IE (nello stesso scenario). Quindi sembra che il browser stia facendo qualcosa in più ... o in aggiunta a ciò che fa il sistema operativo.
GeorgeU

1
A proposito, lo affermano "Proprio come Windows può fare questo per le applicazioni desktop, un browser multi-processo può farlo per le schede. Quando ci si allontana da una scheda, Chrome lo utilizza come suggerimento che le risorse per quella scheda sono meno importanti rispetto alla scheda in primo piano. Chrome abbasserà la priorità della scheda ora in background e restituirà una parte del set di lavoro per quella scheda al sistema operativo. " dev.chromium.org/memory-usage-backgrounder
GeorgeU

Dalla tua descrizione sembra che il sistema stia semplicemente eseguendo il paging della memoria di Chrome. Hai molte schede aperte con pagine con molte immagini, JavaScript e Flash? Il LED del disco rigido lampeggia molto o il thrashing del disco rigido. In tal caso, allora è normale se si lascia un programma che utilizza molta memoria inutilizzata per un po '; Windows finirà per pagina la sua memoria su disco, (anche se non ha bisogno della memoria immediatamente).
Synetech

Risposte:


1

La semplice risposta è no. Google Chrome non si comporta diversamente quando il computer è bloccato o il browser non è a schermo intero.

La risposta leggermente più lunga è che quando lo schermo è bloccato, l'utente è ancora connesso e tutte le applicazioni utente continuano a funzionare normalmente ma sul desktop dell'utente anziché sul desktop sicuro. Tutti gli eventi di disegno sono in cortocircuito per evitare di sprecare i frame di disegno della CPU che non verranno mostrati, ma non succede molto altro che Google Chrome vedrà.

Un'altra caratteristica dell'esecuzione in background è che i thread ottengono intervalli di tempo più piccoli quando non sono in primo piano - una funzionalità deliberata in Windows perché un rallentamento del 5% su un thread in primo piano può far sembrare il sistema lento, mentre un rallentamento del 5% su un il processo in background è generalmente impercettibile.

In Windows questo stesso principio si applica anche alla latenza della rete e del disco. Ai thread in primo piano viene data priorità per le operazioni di rete in coda, quindi se trenta thread vogliono fare tutte le ricerche DNS (come potrebbe essere il caso se apri un sacco di nuove schede in Chrome), quelli che si verificano per primi sono quelli per la scheda stai guardando.

Una combinazione di tutti questi fattori significa che quando Google Chrome non è in primo piano (ad esempio perché qualcos'altro è, o la macchina è bloccata) e altre cose stanno succedendo nel sistema, Google Chrome potrebbe funzionare meno che se erano in primo piano.

Alla fine, però, Windows è intelligente e cerca di rendere la tua esperienza utente meno lenta, non Google Chrome che fa qualcosa di diverso.


Matt, ero a conoscenza della logica di Windows e inizialmente pensavo che fosse Windows. Tuttavia, anche dopo aver forzato la priorità su Normale per l'istanza di Chrome - si è comportato diversamente - più lentamente.
GeorgeU

L'aumento di priorità dato ai thread in background è diverso dalla priorità dell'attività assegnata in Task Manager. La modifica di questo comportamento è una modifica a livello di sistema e può essere eseguita andando su ControlPanel> Sistema> Impostazioni di sistema avanzate> Avanzate> Prestazioni> Impostazioni> Avanzate> Regola per prestazioni ottimali per i thread in background.
SecurityMatt

opaco lo proverò. Non sono ancora convinto poiché non vedo il problema su IE, in esecuzione nello stesso scenario. Anche la documentazione di Chrome suggerisce che stanno facendo una logica extra oltre a Windows. dev.chromium.org/memory-usage-backgrounder
GeorgeU

Quella pagina sembra suggerire che quando una scheda è in background è anche contrassegnata con priorità "bassa" da Chrome, il che significa che i tempi e la priorità per l'accesso alla rete e al disco saranno inferiori per quel processo rispetto a tutte le altre applicazioni in esecuzione. Quando hai detto prima che stavi aumentando la priorità per Chrome, sei sicuro di aumentarla per il processo di tabulazione e non per il processo di finestra? Ogni finestra ha il suo processo così come ogni scheda, ma è la scheda che avrà bisogno del suo aumento di priorità.
SecurityMatt

bene lo realizzo sulla mia build di Chrome, assicurandomi che SetPriorityClass non sia abbassato al di sotto del normale (nel codice Chrome).
GeorgeU,

0

Sì, Chrome ha una priorità molto più bassa rispetto alle schede in background.

Se un'intera finestra è in background, anche tutte le schede saranno in background. Il JavaScript nelle schede viene elaborato solo una volta ogni 1 o 2 secondi (non ricordo quale). Questo ritardo è codificato in modo costante in una costante nel codice sorgente di Chromium. Dovresti ricompilare Chromium per dare maggiore priorità alle schede in background.

Lo so perché ci ho guardato dentro. Volevo che un JavaScript funzionasse in background e si attivasse ogni poche centinaia di millisecondi, ma dopo che la scheda era in background per un po ', i timer si attivavano solo una volta ogni 1 o 2 secondi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.