Як перевірити, яка відеокарта активна в MacBook Pro?


14

Існує велика різниця як у продуктивності, так і в споживанні енергії між двома відеокартами в MacBook Pro.

Проблема в тому, що я часто забуваю, на якому бігу. Це може закінчитися загиблим акумулятором, перебуваючи в літаку, досить швидко. Наскільки я можу сказати, вам потрібно відкрити налаштування системи енергозбереження, щоб побачити, яка з них активна.

Хтось знає про інструмент, який відображатиме (на панелі меню, на робочому столі, будь-який інший) мій поточний стан відеокарти? Особливо добре було б командою терміналу, яка повідомила б, яка з них активна. Я міг би використовувати це як частину моєї установки GeekTool.

Я також здатний написати власний інструмент, якщо хтось знає, де в API я шукаю цю інформацію.

У когось є якісь ідеї?

EDIT: Відповіді нижче щодо system_profiler, безумовно, є кроком у правильному напрямку. MBP показує інформацію для BOTH відеокарт, незалежно від того, яка активна ... АЛЕ відображатиметься "дисплей не підключений" для дисплея, приєднаного до неактивної картки. Я мав би вміти сценарій чогось, що це з'ясує звідти.

EDIT2: Ключ отримує вихід з system_profier у форматі xml (за допомогою перемикача -xml). Сценарії нижче, щоб проаналізувати отриманий список і відобразити результат.

Відповіді:


6

Якщо припустити, що system_profiler повідомляє лише про активний дисплей (я не поруч із MBP, щоб знати) як про підключення цього до GeekTool:

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

Редагувати:

Якщо в цьому рядку вказано неактивний, як "дисплей не зв'язаний", як щодо:

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

Якщо він спочатку перераховує активного, як щодо:

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

Якщо активний другий, замініть голову хвостом.


Чому ви замінюєте колонки пробілами?
Даніель каже, що повернеться до Моніки

4

http://codykrieger.com/gfxCardStatus

Це невеличкий додаток, який знаходиться в панелі і дає вам не тільки карту, яка використовується, але і контроль над тим, як і коли переключити картку. Наприклад, ви можете встановити лише інтегровану відеокарту для роботи, коли працює від акумулятора - тощо ...


gfxCardStatus було оновлено для Mountain Lion та Retina MacBook Pro.
lethbear

3

Використовуючи основну ідею, представлену в двох інших відповідях, я написав наступні сценарії, щоб визначити, чи використовуєте ви "правильну" відеокарту (правильне = "на батареї та використовуєте 9400" або "на адаптері змінного струму та використовуєте 9600")

Я поняття не маю, наскільки крихкі ці сценарії ... вони покладаються на конкретні дані, що з’являються в певному порядку в списку system_profile ... але цей порядок здається послідовним на моїй машині. Розмістити його тут для всіх, хто коли-небудь виявить це через Google.

Ruby: (вимагає встановити дорогоцінний камінь "Plist")

# 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)

Пітон:

# 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

Я знаю, що це питання досить старе, але для тих, хто все ще стикається з ним, може бути непогано знати, що є й інші варіанти. Для найпростіших рішень можна перевірити GFXCheck - це простий додаток, який показуватиме активну відеокарту в


2
або gfxcardStatus, що також дозволяє вам вибрати, який використовувати вручну або автоматично, залежно від вашого профілю живлення.
Robert S Ciaccio

2
Насправді, незабаром після написання цього повідомлення я знайшов gfxCardStatus і встановив, що замість цього - набагато краще. Має автоматичну комутацію та менш дратівливий інтерфейс.
Мікда

Ви коли-небудь придумували, як закінчити речення?
fixer1234

1

У мене немає одного з нових MacBook плюсів тут, але ви повинні мати можливість бачити активну карту через System Profiler. У терміналі просто використовуйте system_profilerдля перегляду конфігурації системи:

Скріншот терміналу


0

Ви можете використовувати дорогоцінний камінь, який active_gfxя написав: https://github.com/ChaosCoder/active_gfx

active_gfx показує графічну карту, якою зараз користується ваша система macOS.

Замість того, щоб переглядати список відкритих процесів у "Моніторі діяльності", цей інструмент випилює використовуваний в даний час графічний чіп шляхом запиту на system_profiler.

Як active_gfxрубіновий камінь, встановіть його через gem install active_gfx.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.