Bir MacBook Pro'da hangi ekran kartının etkin olduğunu nasıl kontrol edebilirim?


14

MacBook Pro'daki iki ekran kartı arasında hem performans hem de güç tüketimi arasında büyük bir fark vardır.

Sorun şu ki, hangisini çalıştırdığımı sık sık unutuyorum. Bu, uçakta oldukça hızlı bir şekilde bitmiş bir pil ile sonuçlanabilir. Anlayabildiğim kadarıyla, hangisinin aktif olduğunu görmek için Enerji Tasarrufu Sistemi Tercihini açmanız gerekiyor.

Geçerli ekran kartı durumumu görüntüleyecek bir aracı (menü çubuğunda, masaüstünde, ne olursa olsun) bilen var mı? Özellikle iyi, hangisinin aktif olduğunu bildiren bir terminal komutu olacaktır. Bunu GeekTool kurulumumun bir parçası olarak kullanabilirim.

Ayrıca API'da nerede bu bilgiyi arayacağımı bilen biri olursa kendi aracımı da yazabilirim.

Herhangi bir fikri olan var mı?

EDIT: Aşağıdaki system_profiler ile ilgili cevaplar kesinlikle doğru yönde atılmış bir adımdır. MBP, hangisinin etkin olduğuna bakılmaksızın, İKİ video kartlarına ilişkin bilgileri gösterir ... AMA etkin olmayan karta takılı ekran için "ekran bağlı değil" i gösterir. Ben gerektiğini o rakamlar dışarı oradan komut şeye muktedir.

EDIT2: Anahtar, x_ biçiminde (-xml anahtarını kullanarak) system_profier'dan çıktı alıyor. Elde edilen plisti ayrıştırmak ve sonucu görüntülemek için komut dosyaları aşağıdadır.

Yanıtlar:


6

System_profiler'ın sadece aktif görüntüyü rapor edeceğini varsayalım (bunu bilmek için bir MBP yakınında değilim) bunu GeekTool'a takmaya ne dersiniz:

system_profiler | grep GeForce | sed -e 's/:/ /'

Düzenle:

Etkin olmayan olanı "ekran bağlı değil" ile aynı satırda listeliyorsa nasıl olur:

system_profiler | grep GeForce | grep - v "display not connected" | sed -e 's/:/ /'

Öncelikle aktif olanı listelerse, nasıl yapılır:

system_profiler | grep GeForce | head -n 1 | sed -e 's/:/ /'

Aktif ikinci ise kafayı kuyrukla değiştirin.


Neden iki nokta üst üste yerine boşluk koyuyorsunuz?
Daniel, Reinstate Monica'ya

4

http://codykrieger.com/gfxCardStatus

Bu barda bulunan ve sadece kullanılan kartı değil, aynı zamanda kartı nasıl ve ne zaman değiştireceğinizi de kontrol eden küçük bir uygulamadır. Örneğin, pil gücüyle çalışırken çalışacak yalnızca tümleşik grafik kartını ayarlayabilirsiniz - vb ...


gfxCardStatus, Mountain Lion ve Retina MacBook Pro için güncellendi.
tembellik Ayı

3

Diğer iki cevapta sunulan temel fikri kullanarak, "doğru" video kartını kullanıp kullanmadığınızı belirlemek için aşağıdaki komut dosyalarını yazdım (pil üzerinde Correct = "ve ac adaptörde 9400" veya "ve 9600" kullanarak)

Bu betiklerin ne kadar kırılgan olduğu hakkında hiçbir fikrim yok ... system_profile plist'te belirli bir sırada görünen belirli verilere güveniyorlar ... ancak bu sipariş makinemde tutarlı görünüyor. Bunu Google üzerinden bulan herkes için buraya yerleştirmek.

Ruby: ("Plist" geminin kurulmasını gerektirir)

# video_profiler.rb
require 'rubygems'
require 'plist'

# calculate video data
data = `system_profiler SPDisplaysDataType -xml`
structured_video_data = Plist.parse_xml(data)
display_status = structured_video_data[0]["_items"][0]["spdisplays_ndrvs"][0]["spdisplays_status"]

if (display_status.eql?('spdisplays_not_connected')) then 
    card = '9400'
else
    card = '9600'
end

# calculate power source data
data = `system_profiler SPPowerDataType -xml`
structured_power_data = Plist.parse_xml(data)
on_ac_power = (structured_power_data[0]["_items"][3]["sppower_battery_charger_connected"] == 'TRUE')

# output results
if (on_ac_power and card.eql?'9400') or (not on_ac_power and card.eql?'9600'):
    result = 'You\'re on the wrong video card.'
else
    result = "You\'re on the correct video card."
end

puts(result)

Python:

# video_profiler.py
from subprocess import Popen, PIPE
from plistlib import readPlistFromString
from pprint import pprint
sp = Popen(["system_profiler", "SPDisplaysDataType", "-xml"], stdout=PIPE).communicate()[0]
pl = readPlistFromString(sp)
display_status = pl[0]["_items"][0]["spdisplays_ndrvs"][0]["spdisplays_status"]
if (display_status == 'spdisplays_not_connected'): 
    card = '9400'
else:
    card = '9600'

# figure out battery status
sp = Popen(["system_profiler", "SPPowerDataType", "-xml"], stdout=PIPE).communicate()[0]
pl = readPlistFromString(sp)
on_ac_power = (pl[0]["_items"][3]["sppower_battery_charger_connected"] == 'TRUE')


if (on_ac_power and card == '9400') or (not on_ac_power and card == '9600'):
    result = 'You\'re on the wrong video card.'
else:
    result = "You\'re on the correct video card."

pprint(result)

2

Bu sorunun oldukça eski olduğunu biliyorum - ama hala tökezleyenler için, başka seçeneklerin de olduğunu bilmek güzel olabilir. En basit çözümler için, aktif grafik kartını ekranda gösterecek basit bir uygulama olan GFXCheck'e göz atabilirsiniz .


2
veya gfxcardStatus, ek olarak güç profilinize bağlı olarak manuel veya otomatik olarak hangisini kullanacağınızı seçmenize izin verir.
Robert S Ciaccio

2
Aslında, bu yazıyı yazdıktan kısa bir süre sonra gfxCardStatus buldum ve bunun yerine - daha iyi yükledim. Otomatik geçiş ve daha az can sıkıcı bir arayüze sahiptir.
micdah

Cümleyi nasıl sonlandıracağınızı hiç anladınız mı?
fixer1234

1

Burada yeni MacBook Pro'lardan biri yok, ancak aktif Kartı System Profiler aracılığıyla görebilmelisiniz. Terminalde sadece system_profilersistem yapılandırmasını görmek için kullanın :

Terminal Ekran Görüntüsü


0

Yazdığım yakut taşını kullanabilirsiniz active_gfx: https://github.com/ChaosCoder/active_gfx

active_gfx, macOS sisteminiz tarafından kullanılmakta olan grafik kartını gösterir.

Bu araç, Etkinlik İzleyicisi'nde açık işlemler listesini gözden geçirmek yerine, şu anda kullanılan grafik yongasını system_profiler.

active_gfxBir yakut mücevher olduğu gibi , aracılığıyla yükleyin gem install active_gfx.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.