मैकबुक प्रो में कौन सा वीडियो कार्ड सक्रिय है, इसकी जांच कैसे करें?


14

मैकबुक प्रो में दो वीडियो कार्ड के बीच प्रदर्शन और बिजली की खपत दोनों में बड़ा अंतर है।

समस्या यह है, मैं अक्सर भूल जाता हूं कि मैं कौन सा भाग रहा हूं। यह एक मृत बैटरी के साथ समाप्त हो सकता है जबकि एक हवाई जहाज पर बहुत जल्दी। जहाँ तक मैं बता सकता हूँ, आपको एनर्जी सेवर सिस्टम को खोलने के लिए देखना होगा कि कौन सक्रिय है।

क्या कोई ऐसे टूल के बारे में जानता है जो मेरे वर्तमान वीडियो कार्ड स्टेटस में (मेनू बार में, डेस्कटॉप पर, जो भी) प्रदर्शित होगा? विशेष रूप से अच्छा एक टर्मिनल कमांड होगा जो रिपोर्ट करेगा कि कौन सक्रिय था। मैं अपने GeekTool सेटअप के भाग के रूप में इसका उपयोग कर सकता हूं।

अगर मैं किसी को पता है कि एपीआई में मैं इस जानकारी के लिए कहाँ होता है अगर मैं अपने खुद के उपकरण लिखने में सक्षम हूँ।

क्या किसी के भी पास कोई सुझाव है?

EDIT: नीचे दिए गए जवाब system_profiler निश्चित रूप से सही दिशा में एक कदम है। MBP BOTH वीडियो कार्ड के लिए जानकारी दिखाता है, जिसकी परवाह किए बिना सक्रिय है ... BUT निष्क्रिय कार्ड से जुड़े डिस्प्ले के लिए "डिस्प्ले कनेक्टेड नहीं" दिखाएगा। मुझे ऐसी किसी चीज़ की स्क्रिप्ट करने में सक्षम होना चाहिए जो इसे वहां से हटाए।

EDIT2: कुंजी को xml प्रारूप (-xml स्विच का उपयोग करके) में system_profier से आउटपुट मिल रहा है। परिणामी प्लिस्ट को पार्स करने और परिणाम प्रदर्शित करने के लिए स्क्रिप्ट नीचे हैं।

जवाबों:


6

सिस्टम_प्रायोजक मानकर केवल सक्रिय प्रदर्शन की रिपोर्ट करेगा (मैं एक MBP के पास नहीं हूं) यह जानने के लिए कि इसे गीकबूल में कैसे प्लग किया जाए:

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 को माउंटेन लायन और रेटिना मैकबुक प्रो के लिए अपडेट किया गया है।
आलस

3

अन्य दो उत्तरों में प्रस्तुत मूल विचार का उपयोग करते हुए, मैंने यह निर्धारित करने के लिए निम्नलिखित स्क्रिप्ट लिखी हैं कि क्या आप बैटरी पर "सही" वीडियो कार्ड (सही = "का उपयोग कर रहे हैं और 9400" या "एसी एडाप्टर पर और 9600 का उपयोग करके")

मुझे नहीं पता कि ये स्क्रिप्ट कितनी नाजुक हैं ... वे system_profile plist में एक विशेष क्रम में दिखने वाले विशिष्ट डेटा पर भरोसा करते हैं ... लेकिन यह आदेश मेरी मशीन पर सुसंगत लगता है। इसे किसी ऐसे व्यक्ति के लिए यहां रखा जाए जो कभी भी इसे Google के माध्यम से खोजता है।

रूबी: ("प्लास्ट" मणि की आवश्यकता होती है)

# 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, जो अतिरिक्त रूप से आपको यह चुनने की अनुमति देता है कि कौन सा मैन्युअल रूप से या स्वचालित रूप से आपकी पावर प्रोफ़ाइल के आधार पर उपयोग करें।
रॉबर्ट एस सियासीओ

2
दरअसल, इस पोस्ट को लिखने के कुछ समय बाद ही मुझे gfxCardStatus मिला और उसने इसके बजाय - बेहतर तरीके से स्थापित किया। स्वचालित स्विचिंग और एक कम कष्टप्रद इंटरफ़ेस है।
micdah

क्या आपने कभी पता लगाया कि वाक्य को कैसे समाप्त किया जाए?
फिक्सर 1234

1

मेरे पास यहां नए मैकबुक पेशेवरों में से एक नहीं है, लेकिन आपको सिस्टम प्रोफाइलर के माध्यम से सक्रिय कार्ड देखने में सक्षम होना चाहिए। टर्मिनल में सिर्फ system_profilerसिस्टम कॉन्फ़िगरेशन देखने के लिए उपयोग करें:

टर्मिनल स्क्रीनशॉट


0

आप active_gfxमेरे द्वारा लिखे गए माणिक रत्न का उपयोग कर सकते हैं : https://github.com/ChaosCoder/active_gfx

active_gfx आपके macOS सिस्टम द्वारा वर्तमान में उपयोग किए जाने वाले ग्राफिक्स कार्ड दिखाता है।

गतिविधि मॉनीटर में खुली प्रक्रियाओं की सूची से गुजरने के बजाय, यह उपकरण वर्तमान में उपयोग की गई ग्राफिक्स चिप को क्वेरी द्वारा बाहर थूकता है system_profiler

जैसा active_gfxकि एक माणिक रत्न है, इसके माध्यम से स्थापित करें gem install active_gfx

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.