如何在 Cocoa 中禁用 Macbook Pro 切换到高性能显卡?

Posted

技术标签:

【中文标题】如何在 Cocoa 中禁用 Macbook Pro 切换到高性能显卡?【英文标题】:How to disable Macbook Pro from switching to a high performance graphics card in Cocoa? 【发布时间】:2011-05-09 19:38:43 【问题描述】:

所有 2010 款 Macbook Pro 都配备了两张显卡——一张是低性能的内置 Intel HD 显卡,一张是高性能的独立 NVIDIA 显卡——它会根据正在运行的应用程序的需要在它们之间动态切换。

我有一个简单的 Cocoa 应用程序,它只包含一个带有 NSTextField 的菜单栏项。我所做的只是不时使用NSAttributedString 更新文本字段。问题是我的应用程序将我的 Macbook Pro 切换为使用高性能 NVIDIA 卡(我使用了gfxCardStatus 工具来确认这一点)。

什么可能需要高性能卡?是否有已知的应用程序需要高性能显卡的原因列表?有没有办法强制电脑使用独立显卡?

【问题讨论】:

【参考方案1】:

Ars Technica 上有一篇关于新款 MacBook Pro 中 GPU 切换的好文章。 我注意到如果你使用 OS X 会切换到专用 GPU

启动一个链接到 OpenGL 的应用程序 连接第二台显示器

gfxCardStatus 的代码是开源的。并且似乎相关部分位于 switcher.m 中。你可以仔细看看here。

【讨论】:

感谢插件。 :) 它确实是开源的,如果您愿意,我鼓励您查看它 - 但是,我不建议将切换代码添加到其他应用程序中。一个尝试控制哪个 GPU 处于活动状态的应用程序就足够了。我设法破坏了我的一个内核扩展,同时运行它的 3 个副本并尝试一个接一个地切换它们,只是为了测试目的 - 坏主意。 此外,任何使用 CALayers 的东西都会触发切换到独立 GPU。 就是科迪!一旦我将其中一个控件上的 WantLayer 设置为 NO,它就会停止切换到离散 GPU。你应该把它写下来作为答案。【参考方案2】:

在 MacOS 10.7 中,您可以在 PList 中指定一个设置以停止使用独立显卡:

https://developer.apple.com/library/mac/qa/qa1734/_index.html

需要 2011 年以上的 MacBook Pro。

【讨论】:

还需要是 15" 或 17"(不是 13")

以上是关于如何在 Cocoa 中禁用 Macbook Pro 切换到高性能显卡?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cocoa Pods 中启用“CorePlot”命令?

markdown 如何在旧款MacBook上安装Docker,即MacBook Pro 2009?

macbook pro有没有可以编程的软件,类似c++,C语言编程的软件,学习C语言用的

我怎样用macbook pro下载完了怎样安装软件

如何实时查看m1 macbook cpu频率?

macbookpro 8g idea如何优化