MacBook Proでアクティブになっているビデオカードを確認する方法


14

MacBook Proの2枚のビデオカードには、パフォーマンスと消費電力の両方に大きな違いがあります。

問題は、私がよく実行しているものを忘れてしまうことです。飛行機に乗っていると、バッテリーが切れてしまいます。私が知る限り、どのシステムがアクティブであるかを確認するには、省エネルギーシステム設定を開く必要があります。

現在のビデオカードの状態(メニューバー、デスクトップなど)を表示するツールを知っている人はいますか?特に良いのは、どのコマンドがアクティブであったかを報告する端末コマンドです。これをGeekToolのセットアップの一部として使用できます。

APIのどこでこの情報を探すかを誰かが偶然知った場合、自分のツールを書くこともできます。

誰にもアイデアはありますか?

編集: system_profilerに関する以下の答えは間違いなく正しい方向への一歩です。MBPは、どちらがアクティブであるかに関係なく、両方のビデオカードの情報を表示します...しかし、非アクティブなカードに接続されているディスプレイの「ディスプレイは接続されていません」と表示されます。私はする必要があり、そこからそれを数字スクリプトに何かのことができるように。

EDIT2:キーはsystem_profierからxml形式で出力を取得することです(-xmlスイッチを使用)。結果のplistを解析して結果を表示するためのスクリプトを以下に示します。

回答:


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/:/ /'

アクティブが2番目の場合、ヘッドをテールに置き換えます。


なぜスペースの代わりにコロンを使用するのですか?
ダニエルは、モニカを復活させる

4

http://codykrieger.com/gfxCardStatus

これはバーにある小さなアプリで、使用中のカードだけでなく、カードをいつどのように切り替えるかを制御できます。たとえば、バッテリ電源で動作するように統合グラフィックスカードのみを設定できます-など...


Mountain LionおよびRetina MacBook ProのgfxCardStatusが更新されました。
ナマケモノ

3

他の2つの回答で示された基本的な考え方を使用して、「正しい」ビデオカードを使用しているかどうかを判断する次のスクリプトを作成しました(正しい=「バッテリーで9400を使用」または「ACアダプターで9600を使用」)

これらのスクリプトがどれほど脆弱かはわかりません... system_profile plistの特定の順序で現れる特定のデータに依存しています...しかし、この順序は私のマシンでは一貫しているようです。Googleでこれを見つけた人のためにここに配置します。

Ruby:(「Plist」gemをインストールする必要があります)

# 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

私はこの質問がかなり古いことを知っていますが、それでもつまずいた人にとっては、他の選択肢があることを知ってうれしいかもしれません。最も単純なソリューションについては、GFXCheckをチェックアウトできます。これは、アクティブなグラフィックスカードを


2
または、gfxcardStatusを使用すると、電力プロファイルに基づいて手動または自動で使用するものを選択できます。
ロバートSチャシオ

2
実際、この投稿を書いた直後にgfxCardStatusを見つけて、代わりにインストールしました。自動切り替え機能があり、煩わしいインターフェイスはありません。
micdah

あなたは文を終了する方法を見つけましたか?
fixer1234

1

ここには新しいMacBook Proはありませんが、システムプロファイラーを介してアクティブなカードを確認できるはずです。ターミナルでsystem_profilerは、システム構成を確認するために使用します。

ターミナルのスクリーンショット


0

active_gfx私が書いたルビーの宝石を使用できます:https : //github.com/ChaosCoder/active_gfx

active_gfxは、macOSシステムで現在使用されているグラフィックカードを示します。

Activity Monitorで開いているプロセスのリストを調べる代わりに、このツールはを照会することにより、現在使用されているグラフィックチップを吐き出しsystem_profilerます。

active_gfxruby gemと同様に、を介してインストールしgem install active_gfxます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.