Windows 7 è troppo lento all’avvio? Windows 8 è troppo lento? Il Windows Performance Toolkit, che contiene anche altri strumenti come il “Performance Analyzer”, individua le cause della lentezza di Windows 7 e 8. Nel seguente articolo presentiamo in dettaglio il toolkit e il suo utilizzo.
Il Software Development Kit (SDK) è destinato agli sviluppatori di software, ma il pacchetto include uno strumento che potrebbe essere interessante anche per gli utenti di Windows che hanno problemi di avvio del sistema. Il Windows Performance Toolkit, che include altri strumenti come il “Performance Analyzer”, individua le cause della lentezza di Windows 7 e 8.
Per Windows 7: “Microsoft Windows SDK per Windows 7 e .NET Framework 4”.
Per Windows 8: “Windows Software Development Kit (SDK) per Windows 8”.
Indice dei contenuti
L’installazione in Windows 7
È possibile che venga visualizzato un messaggio che indica che il Microsoft .NET Framework 4 non è ancora installato. Poiché il .NET Framework non è necessario per utilizzare il Windows Performance Toolkit (ma solo per altre funzioni del Windows SDK), è sufficiente fare clic su [OK]. Il download viene effettuato come programma di installazione web.
Si apre l'”Installazione guidata SDK di Windows”: fare clic su [Avanti].
Nella seguente finestra di dialogo sulla licenza, attivate “Accetto” e cliccate nuovamente su [Avanti].
Verrà quindi richiesta la directory del programma: fare clic su [Avanti].
In questa finestra di dialogo, deselezionare TUTTE le opzioni tranne“Windows Performance Toolkit” in “Common Utilities” (da non confondere con Windows Performance Toolkit in “Redistributable Packages”) – fare clic su [Next] e di nuovo su [Next].
Ora inizia il download vero e proprio. Verrà scaricato solo Windows Performance Toolkit. Dopo il download e l’installazione automatica, è sufficiente fare clic su [Fine]. L’installazione rileva l’architettura del processore del sistema e installa la versione corretta. Nel menu di avvio troverete la nuova voce “Microsoft Windows Performance Toolkit” con gli strumenti GPUView, Performance Analyzer e WPF Performance Suite.
Gli strumenti si trovano anche in “C:Program FilesMicrosoft Windows Performance Toolkit”.
L’installazione in Windows 8
Eseguite il download. Il download si presenta come un programma di installazione web. Nella finestra di dialogo “Specificare la posizione”, lasciare le impostazioni invariate e fare clic su [Avanti].
Nella finestra di dialogo successiva “Join the Customer Experience Improvement Program (CEIP)” è possibile scegliere se fornire a Microsoft le statistiche anonime degli utenti. Selezionare “Sì” o “No” e fare clic su [Avanti]. Dopo [Accetta], deselezionate TUTTE le opzioni in “Seleziona le funzioni da installare”, tranne“Windows Performance Toolkit“. In “Include” è già possibile vedere quali strumenti sono inclusi nel toolkit. Fare clic su [Installa].
Ora inizia il download vero e proprio. Verrà scaricato e installato automaticamente solo Windows Performance Toolkit. L’installazione riconosce l’architettura del processore del sistema e installa la versione corretta. Dopo [Chiudi] troverete gli strumenti GPUView, Windows Performance Analyzer e Windows Performance Recording nell’interfaccia a piastrelle.
Gli strumenti si trovano anche in “Computer C:Program FilesWindows Kits8.0Windows Performance Toolkit”.
Gli strumenti
In Windows 7 gli strumenti si chiamano
- GPUView (per analizzare la scheda grafica)
- Performance Analyzer o XperfView (per Xperf e Xbootmgr)
- Suite di prestazioni WPF
In Windows 8, gli strumenti si chiamano
- GPUView (per l’analisi della scheda grafica)
- Windows Performance Analyzer o XperfView (per Xperf e Xbootmgr)
- Registratore di prestazioni di Windows
La suite per Windows 7 è dedicata alla profilazione delle prestazioni delle applicazioni “Windows Presentation Foundation” (WPF). Con l’aiuto di “WPF Performance Suite” è possibile analizzare il comportamento runtime delle applicazioni WPF e determinare le possibili ottimizzazioni delle prestazioni. La suite contiene gli strumenti di profilazione delle prestazioni “Perforator” e “Visual Profiler”. Poiché in questa sede vogliamo approfondire l’argomento Performance Analyzer, rimandiamo alla pagina Microsoft che spiega bene la suite: MSDN-Microsoft-WPF Performance Suite.
Lo strumento Windows Performance Recorder per Windows 8 è un’interfaccia grafica (GUI) per gli strumenti a riga di comando Xperf e Xbootmgr. Poiché l’interfaccia grafica è in tedesco ed è autoesplicativa, non la esamineremo in dettaglio. Lo strumento è spiegato in dettaglio alla pagina Microsoft: MSDN-Microsoft Windows Performance Recorder.
Gli strumenti più interessanti sono in realtà quelli a riga di comando Xperf e Xbootmgr e l’analizzatoredi prestazioni Viewer, che descriveremo qui in dettaglio.
Analizzatore di prestazioni
Lo strumento Analizzatore di prestazioni (XperfView) visualizza i registri di avvio e di sistema in forma grafica o tabellare per rendere visibili i problemi di avvio e i blocchi di Windows. Per prima cosa, i registri vengono creati nel prompt dei comandi (shell) con diritti di amministratore e quindi valutati con XperfView.
Per Windows 7, i servizi “Deframmentazione” e “Superfetch” non devono essere disattivati.
Creazione e valutazione del registro di sistema
Utilizzate lo strumento a riga di comando Xperf per registrare tutte le attività del PC. Il comando nella shell:
xperf -start -on DiagEasy
Dopo [Invio], avviare alcuni programmi o strumenti che si sospetta possano rallentare Windows. Xperf viene eseguito in background e misura le prestazioni del sistema. Nella shell non si vede nulla. Lasciate che Xperf venga eseguito per alcuni minuti. Xperf crea il registro in background fino a quando non viene interrotto.
Per fermarlo, immettere il seguente comando:
xperf -stop
Ora è possibile trovare il registro di sistema in C: con il nome“kernel.etl“.
È possibile aprire ilfile *.etl con il Performance Analyzer, tramite “File” – “Apri” o facendo doppio clic e selezionando il Performance Analyzer.
Per Windows 7
Viene ancora visualizzato un messaggio di sicurezza che indica che Performance Analyzer non ripercorre alcuna traccia perché il file etl contiene anche dati personali. Nella finestra vengono visualizzati diversi grafici, che si possono vedere per intero solo se si scende con la barra di scorrimento.
Facendo clic sulla freccia grigia del menu all’estrema sinistra dell’area della finestra si apre un elenco da cui è possibile selezionare o deselezionare i grafici. Utilizzare il piccolo menu in alto a destra di ogni grafico per determinare quali dati vengono visualizzati. Due grafici sono sempre adatti al confronto.
Per Windows 8
I grafici sono suddivisi in “Attività di sistema”, “Calcolo”, “Archiviazione” e “Memoria” nella barra del menu “Esploratore grafico” sul lato sinistro. Due grafici sono adatti per il confronto. Fare doppio clic su un grafico a sinistra o semplicemente trascinarlo nella finestra di destra. Utilizzate le piccole icone in alto a destra di ogni grafico per determinare la visualizzazione che preferite: come immagine, tabella o entrambe.
Per Windows 7
Se si preferisce vedere i dati in forma tabellare anziché grafica, fare clic con il tasto destro del mouse sulla finestra e selezionare “Tabella riassuntiva” nel menu contestuale. A volte la vista tabellare è più chiara.
Ma prima restiamo alle visualizzazioni grafiche. Nel menu “Grafici”, selezionate“Utilizzo della CPU per CPU” in modo che appaia un segno di spunta. Quindi fare clic con il tasto destro del mouse sul grafico e nel menu contestuale selezionare “Sovrapponi grafico”, quindi“Durata dei processi” ->“Tutti“.
Il grafico di “Durata dei processi” si è sovrapposto al grafico di “Utilizzo della CPU per CPU”. È possibile vedere gli orari di inizio (diamante rosso) e di fine (diamante blu) dei processi e l’utilizzo della CPU. In questo modo è possibile vedere a colpo d’occhio quale processo è responsabile dell’aumento del carico della CPU. È anche possibile ingrandire i grafici per ottenere risultati più precisi. A tale scopo, contrassegnare con il mouse l’area che si desidera ingrandire e fare clic su di essa con il tasto destro del mouse. Con il comando del menu contestuale “Zoom su selezione” si avvia il processo di zoom. È possibile sovrapporre altri elementi grafici.
Il grafico “Uso della CPU per processo” mostra quanto un processo o un’applicazione sta utilizzando la CPU. Il puntatore del mouse mostra ulteriori dettagli tramite tooltip – in questo esempio SearchFilterHost.exe (236). L’ID del processo è tra parentesi. Se si apre il task manager e si attiva l’opzione “PID (ID processo)” tramite “Visualizza” – “Seleziona colonne”, si vedrà che l’ID del processo 236, ad esempio, appartiene a SearchFilterHost.exe.
Per Windows 8
Il grafico è disponibile all’apertura di “Esploratore grafico”, dove si trova “Uso della CPU (preciso) – Utilizzo per processo”. È possibile sovrapporre facilmente i grafici semplicemente trascinando il grafico di sinistra sull’altro grafico di destra. Il puntatore del mouse mostra ulteriori dettagli tramite tooltip, ad esempio l’ID del processo tra parentesi. È inoltre possibile ingrandire i grafici tramite il menu contestuale “Zoom”.
Con xperf -help si ottengono informazioni su ulteriori parametri e spiegazioni.
Creare e valutare il registro di avvio
È possibile registrare il processo di avvio con lo strumento a riga di comando Xbootmgr.
Il comando: xbootmgr -trace boot -resultpath C:
Assicuratevi di attendere che il tempo passi.
“ResultPath” specifica la directory di destinazione in cui salvare, nel nostro esempio C:.
Dopo un riavvio automatico, che richiede un po’ di tempo, si troveranno uno o due file di log di avvio (a seconda del sistema) in C:, che iniziano con “boot_BASE+CSWITCH_” e hanno l’estensione *.etl. Aprirli con Performance Analyzer in “File – Open” o facendo doppio clic sul file *.etl.
Attendere circa 2 minuti dopo il riavvio e non utilizzare la tastiera o il mouse.
Se si riceve un messaggio di errore, leggere sotto “Se si ricevono messaggi di errore”.
Per Windows 7
Il grafico “I/O disco” è responsabile della visualizzazione degli accessi costanti al disco rigido. Le operazioni di scrittura sono visualizzate in arancione e rosso, quelle di lettura in verde e blu. Se si richiama il menu contestuale del grafico “I/O disco” e si seleziona “Grafico dettagliato”, è possibile vedere i punti di ingresso della testina di scrittura e di lettura sul disco rigido magnetico. Se il disco rigido presenta molti salti (strisce grigie e spesse), ciò può indicare una deframmentazione insufficiente.
Per Windows 8
Qui la grafica non è molto colorata. In “Archiviazione”, “Utilizzo del disco” si trova tutto ciò che ha a che fare con il disco rigido.
Si noti che Windows 8 è stato installato su un disco SSD. Per l’SSD (e anche per Windows 8) non sono necessari: Deframmentazione di Windows, Superfetch e ottimizzazione dell’avvio.
Per Windows 7
Il grafico “Utilizzo del disco per processo” mostra le applicazioni e i programmi che accedono al disco rigido con particolare frequenza. È possibile sovrapporre i grafici con il menu contestuale “Sovrapponi grafico”. Se i programmi non vi dicono nulla, spesso una ricerca su Internet può essere d’aiuto.
Per Windows 8
È possibile nascondere “Esploratore grafico” con “Nascondi automaticamente” (pin), in modo che “Esploratore grafico” venga visualizzato solo brevemente quando ci si passa sopra con il mouse. Il grafico “Utilizzo per processo” si trova in “Archiviazione” – “Utilizzo del disco”.
Per Windows 7
Nel file di registro “boot_BASE+CSWITCH_1.etl” (o simile) si trovano i grafici “Servizi” e “Winlogon”.
Il grafico “Servizi” sembra tagliato in alto. Nella grafica “Servizi”, il punto verde indica l’ora di avvio di un servizio. Il punto rosso indica quando un servizio è stato completamente caricato, da non confondere con la fine del servizio. La maggior parte dei servizi continua a funzionare anche dopo il pieno carico. Il punto arancione indica il servizio che sta ancora caricando e i punti azzurri sono gruppi, ma sono più facili da vedere sotto forma di tabella. I blocchi di frenata si riconoscono dalla barra lunga tra i punti verdi e rossi.
Per Windows 8
Come per Windows 7, tranne per il fatto che la grafica “Servizi” non mostra i punti rossi e verdi. Il grafico “Servizi” si trova in “Attività del sistema”. Innanzitutto, i gruppi sono visualizzati a sinistra da barre colorate, che includono il servizio e il contenitore come sottodirectory. Se si fa clic su un gruppo, la grafica a destra cambia, così come se si fa clic sul servizio e sul contenitore. Il funzionamento è anche inverso: se si fa clic su una barra del grafico che interessa, si apre il gruppo, il servizio ecc. associato.
In questo esempio si può notare che i servizi non presentano alcuna irregolarità.
Per Windows 7
Il grafico “Winlogon” mostra i servizi e i programmi che vengono caricati durante e dopo l’accesso a Windows. Qui si possono vedere solo gli orari di inizio e fine. Se gli orari di inizio e fine sono molto distanti, ora sapete perché Windows impiega ancora un minuto dopo l’accesso.
Per Windows 8
Il grafico “Windows Logon” si trova in “Attività di sistema”, anche in questo caso con delle sottodirectory. Se si fa clic sui servizi con la barra dei colori a sinistra, i punti del grafico a destra cambiano con il colore del servizio o viceversa. Nell’immagine si vede bene che nessun servizio viene avviato in modo irregolare.
Ulteriori comandi
Con il comando xbootmgr -trace hibernate -resultpath C: si registra l’avvio dalla sospensione. Sotto C: si trova il file di registro, che è chiamato approssimativamente “Hibernate_BASE+CSWITCH_” e ha l’estensione *.etl.
Con il comando xbootmgr -trace standby -resultpath C: si registra l’avvio dalla modalità standby. Sotto C: si trova il file di log, che si chiama qualcosa come “Standby_BASE+CSWITCH_” e ha l’estensione *.etl.
Utilizzare il comando xbootmgr -trace shutdown -resultpath C: per registrare lo spegnimento. Sotto C: si trova il file di registro, che si chiama approssimativamente “Shutdown_BASE+CSWITCH_” e ha l’estensione *.etl.
Ottimizzare e accelerare l’avvio del sistema Windows 7
Con ReadyBoost – offre supporto per migliorare le prestazioni del sistema
Con il comando: xbootmgr -trace boot -prepSystem -verboseReadyBoot è possibile accelerare e ottimizzare l’avvio di Windows 7(non si applica ai dischi SSD e a Windows 8).
I servizi “Superfetch” e “Deframmentazione” devono essere avviati e impostati su “automatico” – dopo aver apportato le modifiche necessarie, riavviare Windows. Il driver ReadyBoost viene caricato automaticamente dal servizio Superfetch. ReadyBoost non è più tra i Servizi.
Questo comando riavvia Windows 7 sette volte. Il kernel analizza il comportamento all’avvio. Al 2° riavvio (-prepSystem), lo strumento deframmenta i file di avvio importanti e li sposta sul bordo esterno del disco rigido. Dal 3° al 6° riavvio (-verboseReadyBoot) ReadyBoot analizza il processo di avvio e Xbootmgr sa quali file devono essere caricati in quale ordine. Nel file “Layout.ini” in “C:\Windows\Prefetch” viene quindi registrato l’ordine ottimale di Xbootmgr, in base al quale Windows legge i file di avvio. Al quarto riavvio verrà visualizzato il messaggio in cui viene salvato il file di registro.
È necessario disattivare il controllo dell’account utente e impostare l’accesso automatico a Windows in modo che i riavvii vengano eseguiti automaticamente. Inoltre, non si deve fare nulla al sistema durante la procedura, anche se si pensa che non stia andando da nessuna parte. Non utilizzate il mouse o la tastiera. La procedura dura circa mezz’ora. Attendere tutti e 7 i riavvii.
Dopo [Invio], appare la prima finestra con“Ritardo per la preparazione del sistema (esecuzione 6 di 6)“.
Segue“Preparazione del sistema…” e“Salvataggio dei dati del prefetcher…” e viene annunciato il riavvio. Il conto alla rovescia parte da 6.
Continua così fino a“Ritardo per la preparazione del sistema (esecuzione 1 di 6)“.
Manca ancora un riavvio, Windows si avvia sette volte in totale. Poi l’ottimizzazione è completa.
Dopo il quarto riavvio viene visualizzato un messaggio che indica che il file di registro “bootPrep_BASE+CSWITCH_3.etl” si trova nella directory “C:\Windows\system32” e che contiene informazioni personali.
È possibile aprire il file di registro facendo doppio clic o tramite Performance Analyzer (File – Open). Se si apre direttamente il file di registro, viene chiesto se Performance Analyzer deve essere aperto come visualizzatore e il grafico “Fasi di avvio” viene automaticamente già caricato. Altrimenti, è necessario selezionare il grafico tramite la freccia grigia del menu di Performance Analyzer.
- Inizializzazione pre-sessione
Il kernel di Windows inizializza i driver necessari per avviare Windows (driver RAID o SATA). Sullo schermo appare la scritta “Windows si sta avviando”. - Avvio della sessione
Qui vengono inizializzati il registro e i driver rimanenti. Poi subentra Winlogon.exe. La schermata nera che appare tra l’animazione di avvio e la schermata di login appartiene a questa fase. - Avvio di WinLogon
Viene visualizzata la schermata di login e il “Service Control Manager” avvia i servizi di Windows. Infine, il controllo passa a Explorer.exe. - Inizio di Explorer
Dopo il login, viene avviato il gestore delle finestre del desktop (DWM.exe). Il programma inizializza il desktop e lo visualizza. - Dopo l’avvio
Il desktop viene visualizzato e si può già lavorare con Windows in misura limitata. Windows avvia comunque i servizi rimanenti in background.
Secondo il grafico e la tabella, il tempo di avvio di Windows dopo il Post Boot è di 62,25 secondi.
Ma l’ottimizzazione ha fatto davvero la differenza? Prima di iniziare, abbiamo esaminato il tempo di avvio di Windows nel visualizzatore eventi di Diagnostica-Performance. La durata dell’avvio di Windows era di 70066 ms, ovvero 70,06 secondi.
Dopo l’ottimizzazione, abbiamo controllato di nuovo. Il tempo di avvio di Windows era ora di 61415 ms, ovvero 61,42 secondi (secondo “Fasi di avvio” 62,25 sec).
Windows 7 si avvia ora 8,64 secondi più velocemente (secondo Windows).
Quanto Xbootmgr può accelerare il processo di avvio del PC dipende da quanto è già ottimizzato il PC. Windows 7 ottimizza il sistema in modo permanente, ma solo quando non si lavora sul PC. Se il PC viene acceso solo brevemente perché si vuole controllare rapidamente la posta elettronica, l’auto-ottimizzazione del sistema non avverrà mai.
Con xbootmgr -help è possibile scoprire altri parametri e ottenere spiegazioni.
Se si ricevono messaggi di errore
Impossibile trovare il logger in modalità utente nell’elenco dei logger attivi.
Impossibile fermare la traccia.
Impossibile trovare il logger del kernel nell’elenco dei logger attivi.
Viene creato un *.log sotto C:, ma dice poco come la finestra. Guardate nel tracciatore di eventi. In “Kernel-EventTracing” – “Logging” o “Session” troverete il codice di errore 0xC0000188 oppure “La dimensione massima del file consentita per la sessione xxx è stata raggiunta…”.
Microsoft KB2001347 dice quasi la stessa cosa, ma purtroppo senza una soluzione.
La soluzione consiste semplicemente nell’aumentare la dimensione massima dei file consentita per la sessione.
È possibile farlo tramite il registro di sistema o tramite il monitor di sistema (perfmon).
Tramite il registro di sistema:
In HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\ReadyBoot.
aumentare la voce MaxFileSize, impostata di default a 14 (20 MB), a 60 (decimali) MB. Se non è sufficiente, aumentarla ulteriormente.
Tramite il monitor di sistema:
Start – Esegui: perfmon.msc [OK]. In “Collection Sets” aprire la cartella “Start Event Trace Sessions” e trovare ReadyBoot sotto “Name”. In “Stato” dovrebbe esserci scritto“Attivato“. In caso contrario, aprite ReadyBoot con un doppio clic e nella scheda“Sessione di tracciamento” spuntate la casella“Abilitato“. Nella scheda“Condizione di arresto” si vedrà la dimensione massima di 20 MB. Aumentare a 60 MB e fare clic su [Applica]. Se non è sufficiente, aumentare ulteriormente. Queste impostazioni corrispondono alla voce del Registro di sistema.
Conclusione
L’analizzatore di prestazioni con gli strumenti a riga di comando Xperf e Xbootmgr è molto completo e informativo. Dopo qualche difficoltà iniziale con Windows 7, il messaggio di errore con la lunga ricerca della soluzione, ha funzionato molto bene.
Il file di aiuto elenca altri parametri che caricano solo alcuni elementi grafici e non tutti, come nei nostri esempi. Vengono inoltre visualizzati i virus e i malware che, ad esempio, compromettono il caricamento dell’antivirus o sovraccaricano la CPU.
Lo strumento non è interessante solo in caso di problemi di avvio, ma anche per controllare semplicemente quali applicazioni, driver o servizi vengono avviati. Forse si scopriranno software, driver e così via dimenticati o nascosti che avrebbero dovuto essere disinstallati o aggiornati da tempo.
L’ottimizzazione dell’avvio in Windows 7 ha effettivamente portato un vantaggio di 8,64 secondi, anche se siamo sempre scettici su queste cose.
Il motivo per cui Microsoft nasconde il toolkit nell’SDK e non offre una soluzione per il messaggio di errore nella voce 2001347 della Knowledge Base rimane probabilmente un segreto di Redmond.