关闭独显以省电
Categories:
这篇文分享给台式机很少关机, 经常远程回家中的台式机上工作的朋友.
我的主力工作机和游戏机是同一台机器, 显示屏是 4K 144Hz, 日常都是开着独显, 普通操作显示都会更顺滑一些, 但是功耗也是明显更大.
以下截图里的功率同时带着一个 J4125 小主机, 日常功耗在 18w 上下, 因此结论可能有不准确的地方
不开游戏, 在桌面快速滑动鼠标的峰值功率可以到192w
关闭独显后, 刷新率降到 60Hz, 峰值功率降到120w上下.
在外隧道回家工作是使用的腾讯的一个入门主机, 带宽较小, 远端刷新率只有 30hz, 这种情况用独显是没有意义, 可以考虑切换到集显.
多数时候, 我不直接使用远程桌面, 而是使用 vscode 的远程开发, 优势是隐蔽, 占用带宽小, 几乎是本地开发的体验.
普通代码编辑时, 约 72w, 与关闭独显前的 120w 相比, 有一定的节能效果.
使用remote ssh
进行远程开发时, 可以用使用脚本关闭独显.
脚本保存为switch_dedicate_graphic_cards.ps1
, 使用方法为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
}