Elektrik tasarrufu için ayrı bir grafik kartını kapatma

Bu makale, genellikle kapatılmayan masaüstü bilgisayarlara ve evdeki masaüstü bilgisayarlara sık sık uzaktan çalışan arkadaşlara yönelik bir paylaşımdır.

Ana çalışma makinesi ve oyun makinesi aynı bilgisayardır ve ekran 4K 144Hz’dir. Normalde ayrı bir grafik kartı kullanılır, böylece genel işlemler daha akıcı bir görüntü deneyimi sunar, ancak aynı zamanda güç tüketimi de belirgin şekilde artar.

_ Aşağıdaki ekran görüntüleri J4125 mini ana makineyi de içerir, günlük güç tüketimi yaklaşık 18w civarındadır, bu yüzden sonuçlar tam olarak doğru olmayabilir _

Oyun oynamadığınızda, fareyi masaüstünde hızlıca kaydırmanın zirve gücü192w‘ye ulaşabilir

Ayrı bir grafik kartı kapatıldığında, yenileme oranı 60Hz’e düşer ve zirve gücü120w‘ye düşer.

Uzaktan eve dönerken kullanılan düşük seviyeli bir Tencent ana makinedir, bant genişliği küçüktür ve uzaktaki yenileme oranı sadece 30hz’dir. Bu durumda ayrı bir grafik kartı kullanmanın bir anlamı yoktur, entegre grafik kartına geçiş düşünülebilir.

Çoğu zaman doğrudan uzak masaüstü kullanmaz, bunun yerine vscode’nun uzaktan geliştirme özelliğini kullanırım. Avantajı, gizli olması, bant genişliği tüketiminin az olması ve neredeyse yerel geliştirme deneyimi sağlamasıdır.

Normal kod düzenlemesi sırasında yaklaşık 72w, ayrı grafik kartı kapatılmadan önceki 120w’a göre belirgin bir enerji tasarrufu etkisi vardır.

remote ssh kullanarak uzaktan geliştirme yaparken, ayrı grafik kartını kapatmak için bir betik kullanılabilir.

Betik switch_dedicate_graphic_cards.ps1 olarak kaydedilir, kullanım yöntemi switch_dedicate_graphic_cards.ps1 off şeklindedir

# Kullanım: switch_dedicate_graphic_cards.ps1 on|off

# Parametreleri al
$switch = $args[0]

# Parametre geçirilmezse çık
if ($switch -eq $null) {
    Write-Host "Usage: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
    exit
}

# Görüntü aygıtlarını al
$displayDevices =  Get-CimInstance -Namespace root\cimv2 -ClassName Win32_VideoController

# Görüntü aygıtı yoksa veya yalnızca bir görüntü aygıtı varsa, çık
if ($displayDevices.Count -le 1) {
    Write-Host "No display device found."
    exit
}

# Ayrı grafik kartlarını al
$dedicatedGraphicCards = $displayDevices | Where-Object { $_.Description -like "*NVIDIA*" }

# Ayrı grafik kartı yoksa, çık
if ($dedicatedGraphicCards.Count -eq 0) {
    Write-Host "No dedicated graphic card found."
    exit
}

# Ayrı grafik kartlarını aç veya kapat
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
}