Yosemite: зум для специальных возможностей + несколько мониторов = низкая производительность

После обновления до Yosemite функция масштабирования специальных возможностей недоступна при подключении к внешнему монитору.

Действия по воспроизведению:

  • Включить масштабирование в Системных настройках — Специальные возможности.
  • Подключите внешний монитор, не используя зеркалирование (второй рабочий стол).
  • Увеличьте масштаб с помощью CTRL+(жест двумя пальцами) - или OPT-CMD-=

Ожидал:

  • Зум плавный, все рендерится со скоростью 60 кадров в секунду, без каких-либо задержек.

Действительный:

  • Все отображение на обоих экранах задерживается, включая воспроизведение видео, движение мыши и нажатия клавиш/ввод текста. Система становится неприемлемо медленной при увеличении (8-12 кадров в секунду, при этом пытаясь «наверстать» пропущенные кадры). Требуется много времени, чтобы «восстановиться» после увеличения путем уменьшения масштаба.

Аппаратное обеспечение:

  • MacBook Pro (Retina, 15 дюймов, начало 2013 г.)
  • Согласно другим источникам, это, похоже, влияет на все оборудование Mac, на котором работает Yosemite.

Об этом неоднократно сообщалось на дискуссионных форумах Apple: один, два , три , четыре .

Я не смог найти приемлемого решения.

Обратите внимание, что производительность масштабирования «идеальна» (читай: приемлема) после отключения внешнего монитора. Это также «идеально», когда используется зеркальное отображение.

Редактировать: удалена ссылка на http://testufo.com , так как в нормальных условиях она слишком хрупкая, чтобы ее можно было использовать для воспроизведения.

Редактировать 2, 18 ноября 2014 г .: после обновления до Yosemite 10.10.1 производительность немного улучшилась, но все еще не соответствует предыдущим стандартам. Например, перейдите на https://kraken.io/ и наведите указатель мыши на ползунок изображения. Затем попробуйте сделать то же самое с увеличением — это невыносимо медленно. Такое ощущение, что когда активируется зум (на нескольких экранах), он падает до программного рендеринга или чего-то столь же медленного. Тот же тест только с одним экраном идеален.

Редактировать 3: другие предложенные обходные пути дали плохие результаты:

  • Перезапустите (или WindowServerзавершите процесс, который выведет вас из системы). Первые несколько минут использования проходят сравнительно гладко, но все же не на 100%.

Редактировать 4: Включение увеличения контрастности кажется лучшим обходным путем на данный момент. Смотрите мой 2-й ответ .

Редактировать 5: теперь это полностью исправлено в 10.10.2.

Ответы (9)

Теперь это исправлено в OS X 10.10.2.

Да, сегодня утром я снова включил «Прокрутка с инерцией», и масштабирование снова работает, как и должно, на обоих дисплеях.
Я могу подтвердить, что это исправлено в 10.10.2. Спасибо!

После обновления до Yosemite я также получил чрезвычайно медленный отклик в ряде различных ситуаций, таких как длительные паузы для Spotlight для возврата совпадений файлов, медленный запуск приложений, особенно после выхода из спящего режима дисплея, а также другие операции. (Это похоже на то, как если бы вы шли по зыбучим пескам и обнаруживали, что не можете двигаться, как могли бы.) Кроме того, я видел журналы консоли, заполненные повторяющимися сообщениями о недопустимых соединениях и дампах несоответствующих жестов трекпада, иногда с почти одинаковым заполнением сообщений. весь вид консоли на 4000 строк. Я думаю, что теперь нашел причину, по крайней мере, для моего iMac, поэтому я размещаю ее здесь, чтобы посмотреть, не является ли она причиной подобных проблем для других, связанных с медлительностью после перехода на медленные проблемы Yosemite.

Я копался в своей пользовательской Preferencesпапке (в ~/Library Preferences), просматривая случайные файлы настроек, чтобы занять себя, пытаясь понять, что делать дальше. (Пытаться работать стало очень утомительно). В com.apple.sidebarlists.plist, я наткнулся на ключ со значением, которое продолжалось после того, как пролистнул несколько страниц вниз, а затем заметил, что полоса прокрутки все еще находится в начале файла. Я проверил размер файла, и он составил 11 МБ (большинство файлов настроек были намного меньше 100 КБ, многие из них имели длину менее 10 КБ). Попытка посмотреть файл в Xcode была почти невозможна из-за медлительности, поэтому я выгрузил его в список текстовых свойств для редактирования и нашел несколько ключей с огромными значениями, все с именем ключаBookmark(6 ключевых значений имели длину чуть более 2,7 МБ, а 2 других — чуть менее 4,3 МБ). Некоторые из них были связаны с внешними томами USB, один с томом, которого больше не существовало, и один с томом, который был разделом на системном диске; у большинства, если не у всех, также был короткий Aliasключ, который существовал для каждого тома, описанного в этом файле. После многих потерянных часов из-за моей неудачной попытки отредактировать файл, чтобы удалить проблемные разделы (что я не рекомендую), из-за чего моя машина не могла загрузиться, я, наконец, удалил файл. С тех пор все надоедливые задержки ушли (надеюсь, навсегда).

Я легко вижу, как это могло замедлить работу Spotlight (это было похоже на ожидание раскрутки диска), поскольку открытие Finderокна Spotlight, вероятно, требовало чтения настроек «боковых панелей», чтобы определить, как отображать окно, и потребовалось бы некоторое время, чтобы прочитать последовательные данные (аналогично замедлению, когда я сам читал или редактировал файл. Теперь этот файл настроек составляет 7 КБ (примерно в 1570 раз меньше, чем он был), и он чувствует себя прекрасно… такой же легкий и быстрый, как и работающая ОС Х 10,9 (Маверикс).

Вот краткое изложение того, на что следует обратить внимание и, возможно, сделать:

  1. Открыть /Users/(username)/Library/Preferences( ~/Library/Preferences) в окне Finder; перейдите в режим просмотра списка и отсортируйте файлы по размеру.
  2. com.apple.sidebarlists.plistПроверьте, не превышает ли какой-либо из файлов настроек размер большинства других.
  3. Если вы обнаружите слишком большие файлы, переместите их из папки и поместите куда-нибудь (например, в новую папку, которую вы создаете на рабочем столе). Это не вызовет никаких проблем, так как он будет воссоздан при перезапуске, хотя вам, возможно, придется сбросить некоторые Sidebarнастройки по своему вкусу с помощью Finder -> Preferences.
  4. Перезагрузите компьютер (или перезапустите Finder) и посмотрите, улучшились ли проблемы со скоростью. Если да, то следите за тем, чтобы дела шли лучше (а как же иначе?)
  5. Независимо от того, работает ли это, мне и другим было бы полезно знать, чтобы мы могли помочь решить эту проблему тем, кто пострадал таким образом, или определить, что это не причина, и продолжить определять, что не так, если это возможно.

Я надеюсь, что это поможет, как это было для меня (пока что), так как написание этого поста было бы невыносимым, если бы все еще существовала та же медлительность!

На форумах Apple есть обходной путь .

Плюсы:

  • Производительность ввода мышью / клавишей «чувствуется» значительно лучше, как и масштабирование по импульсу.
  • Увеличение для каждого экрана, а не для обоих сразу

Минусы:

  • Он по-прежнему далеко не так эффективен, как в Mavericks . Сайт testufo.com по- прежнему не будет отображаться со скоростью 60 кадров в секунду при масштабировании.
  • Хотя этот обходной путь несколько улучшает производительность на нескольких экранах в Yosemite, он значительно ухудшает производительность на одном экране! Производительность одного экрана уже «идеальна» при использовании масштабирования «Полный экран» по умолчанию, и это шаг назад.

Инструкции:

  • В Системных настройках-Специальные возможности установите для стиля масштабирования значение «Картинка в картинке» .

Системные настройки — Специальные возможности

  • Щелкните Дополнительные параметры...

Системные настройки - Специальные возможности - Дополнительные параметры...

  • Нажмите «Настроить размер и расположение».
  • Вы увидите прямоугольную увеличенную панель с кнопкой «ОК» посередине. Перетащите углы в верхний левый и нижний правый углы экрана. Нажмите ОК .

Теперь, когда вы увеличиваете масштаб, это можно использовать, но все еще заметно медленно.

Лучший обходной путь на данный момент:

В Системных настройках-Доступность выберите Увеличить контрастность (что неявно выберет Уменьшить прозрачность). Кажется, что в некоторых случаях это улучшает производительность, но сильно влияет на эстетику. Ползунок на http://kraken.io работает плавно при увеличении. Есть еще некоторые обстоятельства, когда увеличение немного замедляется, но это уже не так плохо, как раньше.

Редактировать: после нескольких часов работы с включенным увеличением контрастности (и обновлением до Yosemite 10.10.1) я могу сказать, что производительность вернулась к приемлемому уровню.

Я все еще не в восторге от того, что мне нужно включить функцию специальных возможностей, которая мне не нужна или не нужна для повышения производительности. Мне действительно не нравится внешний вид увеличения контраста : сплошные черные контуры вокруг ввода текста и кнопок, эффект полос зебры в списках и т. Д. Все это немного раздражает из-за тонкости OS X.

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

Скриншот: Нормальный вид Нормальный внешний вид

Скриншот: Внешний вид с включенным параметром «Увеличить контраст» Внешний вид с включенным параметром «Увеличить контраст»

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

FWIW, мой опыт идентичен во всех описанных вами сценариях (оригинал и оба обходных пути). Я использую 10.10.1 на Mini CoreI7 2014 года с 16 ГБ ОЗУ и SSD с двумя внешними 24-дюймовыми дисплеями. Я вижу очень небольшое отставание на сайте kraken.io, но ничего ужасного.

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

  1. Попробуйте перейти к тысячам цветов на дисплеях.
  2. Попробуйте уменьшить разрешение экрана для каждого из ваших дисплеев.
  3. Попробуйте изменить расположение экранов, чтобы они располагались вертикально. — (Я предполагаю, что при уменьшении наибольшего размера закадрового буфера комбинированных экранов вы увидите уменьшение памяти, необходимой для его рендеринга; хотя я недостаточно знаком с современными графическими процессорами, чтобы знать, как они оптимизируют использование памяти и это может иметь незначительный эффект или не иметь никакого эффекта. Причины, по которым это помогло бы в прошлом, сегодня могут уже не действовать.)

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

Я заметил твой пост. Я немного раньше обновил свой основной рабочий жесткий диск до Yosemite. В итоге я запустил Mavericks с внешнего диска и получил доступ к yosemite только для файлов, поскольку жесткий диск все еще находится внутри моего macPro. Теперь я снова загрузился на yosemite, так как он получает обновления и работает немного лучше (медленно). Так что некоторые вещи работают лучше, но я все еще пытаюсь отлаживать вещи, и я думаю, что только что понял, как вернуть свой процессор обратно из потока windowsserver. Просто зайдите в специальные возможности и отключите все функции масштабирования. Я думаю, что в моем случае масштабирование с включенным колесом прокрутки Ctrl + прокрутки отображало все на увеличенном уровне, а также на текущем уровне, поэтому он был бы готов, если бы я нажал Ctrl и увеличил масштаб. что нибудь. когда я выключил это, компьютер Процессор резко упал до приемлемого уровня. это безумие, что Mavericks лучше работает с жестким диском usb2.0, чем с лентой прямо в логической плате. Кроме того, после того, как я отключил этот зум, я нажал на увеличение контраста, и это не сильно повлияло на усиление, которое я уже получил. из-за этого операционная система выглядит как дерьмо, поэтому я выключил ее, чтобы вернуть размытие в пользовательский интерфейс. надеюсь это поможет. извините за мои заглавные буквы, я просто не чувствую, как это atm. :) я просто не очень чувствую, как это atm. :) я просто не очень чувствую, как это atm. :)

Два монитора, прозрачность выключена. После обновления до Yosemite у меня возникли проблемы с ужасно запаздывающим масштабированием мыши. Иногда для завершения простого масштабирования экрана требуется до 5 секунд. Попытка уменьшить масштаб, когда Mac выключен, иногда только усугубляет проблему.

Масштабирование на уровне монитора работает намного лучше, если я установил для прокрутки значение « без инерции » в диалоговом окне «Параметры мыши» на панели «Мышь и трекпад» системных настроек специальных возможностей. Масштаб теперь работает быстро и останавливается, когда я перестаю двигать пальцем по мышке. Для этого я могу жить без иногда полезной функции «инерции мыши». -Возможно, Apple решит проблему инерции, но пока это кажется лучшим решением.

Вы пробовали с «Увеличить контраст»? Кажется, это хорошо работает с внешними мониторами + инерционная прокрутка, но выглядит уродливее. Я попробую инерцию, когда рядом будет монитор.
Похоже, я не могу получить доступ к этому диалоговому окну только с помощью трекпада.

На моей Каталине (10.15.7) проблема все еще остается; WindowServer использует от 12% до 27%. У меня подключен монитор 4K (BenQ PD3220U), и похоже, что у macOS есть проблема с этим:

В соответствующем посте я видел, что при проверке журналов с помощью команды:

log stream --predicate '(process == "WindowServer")' --debug

Я получил:

2020-11-16 20:34:43.764462+0100 0x525      Debug       0x0                  378    0 
WindowServer: (CoreDisplay) [com.apple.CoreDisplay:default] [DEBUG] - On display
0x04280880, surface is not detached, CoreDisplay is detached (0x00000000), 
DetachCode = 0

Они регистрируются со скоростью 10-30 строк в секунду, в зависимости от масштабирования, установленного на внешнем мониторе.

(Печальное) решение, которое сработало для меня, состояло в том, чтобы отказаться от внутреннего монитора MBP; закрытие крышки прекращает бешеное логирование, вентиляторы останавливаются, и WindowServer успокаивается. Милая тишина, но не радостная из-за потери экрана.

Я уверен, что это не сработает для всех, но для меня все, что я сделал, это поднял настройки дисплея и изменил его, чтобы отразить мои дисплеи, а затем снова изменил его на отдельные дисплеи. Загрузка процессора WindowServer сразу упала с 80% до 10%.