Désactiver la carte graphique dédiée pour économiser l'électricité
Categories:
Ce texte est partagé avec les amis qui éteignent rarement leur ordinateur de bureau et travaillent souvent à distance sur leur machine à la maison.
Mon ordinateur principal pour le travail et pour les jeux est la même machine, l’écran est 4K 144Hz, je garde généralement la carte graphique dédiée activée au quotidien, ce qui rend l’affichage plus fluide pour les opérations ordinaires, mais la consommation d’énergie est également nettement plus élevée.
Les captures d’écran ci-dessous incluent simultanément un petit hôte J4125, dont la consommation quotidienne est d’environ 18w, donc les conclusions peuvent être imprécises
Sans jeu, le pic de puissance lors d’un glissement rapide de la souris sur le bureau peut atteindre 192w

Après avoir désactivé la carte graphique dédiée, le taux de rafraîchissement chute à 60Hz, et le pic de puissance descend à environ 120w.

Lorsque je travaille à distance à la maison via un tunnel, j’utilise un hôte d’entrée de gamme de Tencent, la bande passante est faible, le taux de rafraîchissement à distance n’est que de 30hz, dans ce cas l’utilisation d’une carte graphique dédiée n’a aucun sens, on peut envisager de basculer vers la carte graphique intégrée.
La plupart du temps, je n’utilise pas directement le Bureau à distance, mais plutôt le développement à distance de vscode, dont l’avantage est d’être discret, d’occuper peu de bande passante et de fournir presque une expérience de développement locale.

Lors de l’édition ordinaire de code, la consommation est d’environ 72w, comparée aux 120w avant la désactivation de la carte graphique dédiée, ce qui présente un certain effet d’économie d’énergie.

Lors de l’utilisation de remote ssh pour le développement à distance, on peut utiliser un script pour désactiver la carte graphique dédiée.
Enregistrez le script sous le nom switch_dedicate_graphic_cards.ps1, la méthode d’utilisation est switch_dedicate_graphic_cards.ps1 off
# Usage: switch_dedicate_graphic_cards.ps1 on|off
# Get parameters
$switch = $args[0]
# exit if no parameter is passed
if ($switch -eq $null) {
Write-Host "Usage: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
exit
}
# Get display devices
$displayDevices = Get-CimInstance -Namespace root\cimv2 -ClassName Win32_VideoController
# If there is no display device or only one display device, exit
if ($displayDevices.Count -le 1) {
Write-Host "No display device found."
exit
}
# Get dedicated graphic cards
$dedicatedGraphicCards = $displayDevices | Where-Object { $_.Description -like "*NVIDIA*" }
# If there is no dedicated graphic card, exit
if ($dedicatedGraphicCards.Count -eq 0) {
Write-Host "No dedicated graphic card found."
exit
}
# turn dedicated graphic cards on or off
if ($switch -eq "on") {
$dedicatedGraphicCards | ForEach-Object { pnputil /enable-device $_.PNPDeviceID }
Write-Host "Dedicated graphic cards are turned on."
} elseif ($switch -eq "off") {
$dedicatedGraphicCards | ForEach-Object { pnputil /disable-device $_.PNPDeviceID }
Write-Host "Dedicated graphic cards are turned off."
} else {
Write-Host "Invalid parameter."
Write-Host "Usage: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
}