Informazioni sul risparmio energia

Il sistema operativo Windows offre un set completo e a livello di sistema di funzionalità di risparmio energia. Ciò consente ai sistemi di estendere la durata della batteria e risparmiare energia, ridurre calore e rumore e garantire l'affidabilità dei dati.

Modern Standby e progettazione delle applicazioni

Modern Standby (stato di inattività S0 a basso consumo) è la modalità di sospensione predefinita sulla maggior parte dei dispositivi Windows 11. A differenza della sospensione S3 tradizionale, il sistema rimane parzialmente in esecuzione, la connettività di rete può essere mantenuta e il sistema può riattivarsi immediatamente. Questo cambia il modo in cui le applicazioni devono gestire il lavoro in background.

Importante

I comuni anti-pattern che consumano la batteria in Modern Standby:

  • Tenendo premuto ES_SYSTEM_REQUIRED continuamente — ciò impedisce al sistema di entrare in uno stato di inattività a basso consumo. Tenere premuto questo flag solo durante l'esecuzione attiva del lavoro, quindi cancellarlo immediatamente.
  • Riattivazione periodica del timer : i timer che vengono attivati ogni pochi secondi mantengono attiva la CPU. Usare invece timer di unione o progettazioni basate su eventi.
  • Polling di rete non associato : per le app in pacchetto, usare le notifiche push (WNS). Per le app Win32 non in pacchetto, usare socket basati su eventi o notifiche di modifica dell'elenco di rete anziché eseguire il polling di un endpoint.
  • Flussi audio/video lasciati aperti — Anche i flussi silenziosi impediscono lo spegnimento del dispositivo audio. Rilasciare dispositivi audio quando non viene eseguito attivamente il rendering.

Procedure consigliate per lo standby moderno

  1. Registrarsi per ricevere notifiche di alimentazione per rilevare le transizioni. Usare PowerSettingRegisterNotification con GUID_MONITOR_POWER_ON e GUID_POWER_SAVING_STATUS.
  2. Rinvia le attività non critiche finché il dispositivo non è collegato all'alimentazione CA. Prima di avviare operazioni di grandi dimensioni, rivolgersi a GetSystemPowerStatus .
  3. Usare SetThreadExecutionState con moderazione - Chiamare con ES_CONTINUOUS | ES_SYSTEM_REQUIRED solo per le operazioni attive (trasferimenti di file, registrazione multimediale) e cancellare sempre con SetThreadExecutionState(ES_CONTINUOUS) al termine dell'operazione.
  4. Operazioni di rete batch : combinare più richieste di piccole dimensioni in una sessione per ridurre al minimo il tempo di riattivazione della radio.
  5. Rispettare il risparmio batteria : quando GUID_POWER_SAVING_STATUS indica che il risparmio batteria è attivo, ridurre o eliminare l'attività in background.

Le funzioni di risparmio energia e i messaggi recuperano lo stato di alimentazione del sistema, notificano alle applicazioni eventi di risparmio energia e notificano al sistema i requisiti di alimentazione di ogni applicazione. Questa panoramica contiene gli argomenti seguenti:

risparmio energia