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

существует большая разница в производительности и энергопотреблении между двумя видеокартами в MacBook Pro.

проблема в том, что я часто забываю, какой из них я запускаю. Это может в конечном итоге с разряженной батареей в то время как на самолете довольно быстро. Насколько я могу судить, Вы должны открыть предпочтения системы энергосбережения, чтобы увидеть, какой из них активен.

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

Я также способен написать свой собственный инструмент, если кто-нибудь узнает, где в API я буду искать эту информацию.

У кого-нибудь есть идеи?

изменить: ответы на вопросы, касающиеся system_profiler, безусловно, шаг в правильном направлении. MBP показывает информацию для обеих видеокарт, независимо от того, что активно... Но покажет "дисплей не подключен" для дисплея, подключенного к неактивной карте. I должны уметь сценарий-то, что это оттуда.

EDIT2: ключ получает выходные данные из system_profier в формате xml (с помощью переключателя-xml). Скрипты ниже для разбора результате plist и отображения результата.

17
задан mmc
24.01.2023 20:42 Количество просмотров материала 3671
Распечатать страницу

6 ответов

предполагая, что system_profiler будет сообщать только об активном дисплее (я не рядом с MBP, чтобы знать), как подключить это к GeekTool:

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

Edit:

если он перечисляет неактивный в той же строке, что и "display not connected", как насчет:

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

если он перечисляет активное одно сперва, то как около:

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

Если активно во-вторых после этого, то замените головку с кабелем.

6
отвечен ridogi 2023-01-26 04:30

http://codykrieger.com/gfxCardStatus

Это небольшое приложение, которое находится в баре и дает вам не только карту в пользование, но и контроль над тем, как и когда переходить на карты. Например, вы можете установить только интегрированная видеокарта для запуска при питании от батареи - и т. д...

4
отвечен S S Cheema 2023-01-26 06:47

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

Я понятия не имею, насколько хрупки эти скрипты... они полагаются на определенные данные, появляющиеся в определенном порядке в system_profile plist... но этот порядок кажется последовательным на моей машине. Размещение его здесь для тех, кто когда-либо находит это через Погуглить.

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)

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)
3
отвечен mmc 2023-01-26 09:04

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

2
отвечен micdah 2023-01-26 11:21

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

Terminal Screenshot

1
отвечен Bryan Schuetz 2023-01-26 13:38

вы можете использовать рубиновый камень active_gfx Я писал: https://github.com/ChaosCoder/active_gfx

active_gfx отображает графическую карту, используемую в настоящее время в системе macOS.

вместо того, чтобы идти через список открытых процессов в монитор активности, этот инструмент выплевывает в настоящее время используется графический чип, запрашивая system_profiler.

As active_gfx рубиновый самоцвет, устанавливает его через gem install active_gfx.

0
отвечен ChaosCoder 2023-01-26 15:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх