6

TL; DR моя комбинация жестких дисков приводит к тому, что диалоги загрузки загружаются ~ 6 секунд, что также подтверждается кодом, и я не могу найти никакого облегчения.

У меня была Windows 7 в течение долгого времени, полностью игнорируя 8. Пока я был на 7, мне приходилось очень долго терпеть, но в остальном был доволен производительностью во всем.

Прямо перед выпуском Windows 10 я укусил пулю и установил ее, чтобы я мог хотя бы попытаться идти в ногу со временем. В то же время я получил новый SSD для его установки, чтобы облегчить мои проблемы при запуске. Все установилось гораздо более плавно, чем я надеялся, и я быстро вернулся к скорости. Боли в росте почти не существовали, за исключением одного шипа на моей стороне: иногда, когда я открывал диалог загрузки, это занимало ~ 5-10 секунд, прежде чем он даже появлялся.

(Прежде чем вы подпрыгнете и скажете "профиль мощности", это не так, он настроен на то, чтобы никогда не раскручивать жесткие диски.) Я говорю только "время от времени", потому что мне потребовалось некоторое время, чтобы выяснить, какие программы это делают - сначала я думаю, что это было все, но Chrome и другие, похоже, исправили это поведение. Большой, который все еще производит поведение каждый раз, является Gimp 2.8; независимо от того, что я делаю, если я сохраняю новый файл или загружаюсь, мне приходится ждать 5-10 секунд, пока диалоговое окно не появится.

Сначала я думал, что это ошибка в самой Windows 10, но потом, когда Chrome и другие стали лучше, я подумал, что это должно быть что-то с Gimp, что не будет первой странностью, с которой я столкнулся в этой программе. Но затем я был немного ближе к оборудованию и обнаружил, что это не вина Гимпа.

Я занимаюсь программированием игр Unity, и в настоящее время я работаю над диалогом сохранения / загрузки общего назначения с использованием C # (и устаревших библиотек Mono). Когда я впервые запустил файловый браузер, он работал медленнее, чем патока - я записал это на мой счет как плохой метод, но когда я приступил к его оптимизации, я обнаружил, что подавляющее большинство времени ожидания было вызвано одна строка кода:

string[] drives = System.IO.Directory.getLogicalDrives();

После его измерения эта задержка была эквивалентна замедлению Gimp: 5,5 секунд, и все, что Windows скажет «у вас есть диск C:, D:, E: и F:». Я взломал модификацию в моем диалоге загрузки, чтобы он отображал эту задержку информации о диске, и подтвердил, что каждый раз, когда запускается программа, у меня задержка ~ 5-6 секунд. Просто чтобы услышать ответ на системный вызов API, чтобы получить список путей к жестким дискам.

Чтобы понять, насколько это плохо, я запустил ту же самую программу, связанную выше, на ноутбуке моей жены, ноутбуке моего брата, рабочем столе моего отца (все три на Windows 10) и mac mini моей матери (после перекомпиляции для цели MacOS) , На каждом из них задержка составляет десятки миллисекунд, что я и ожидал. Mac mini потребовалось около 20 секунд, чтобы загрузить чертову программу, но как только она запустилась, бум, менее чем на одну десятую секунды, чтобы загрузить жесткие диски из этой единственной строки кода.

Так что теперь я в растерянности. Профиль мощности настроен на отключение дисков; мой BIOS установлен на AHCI для SSD; Я установил файл подкачки не динамическим; Я отключил индексирование и службу поиска Windows; все дефрагментировано. Я даже загрузился обратно в Windows 7, чтобы увидеть положение вещей; ни одна из программ не имела какой-либо задержки в диалоге загрузки, но когда я запустил свой маленький инструмент загрузки, он последовательно показывал 5,5 секунды для загрузки дисков.

Я должен отметить, что в течение этих 5 секунд не наблюдается огромный всплеск ЦП / памяти или доступа к диску; Вот скриншот моментов программы после запуска с диспетчером задач в фоновом режиме: imgur ссылка ,

Вот скриншот управления дисками: imgur ссылка , Диск 0 - это твердотельный накопитель, диск 1 - недавний диск емкостью 1 ТБ, диск 2 - старый накопитель Caviar Black 1 ТБ, а диск 3 - диск Caviar Green 2 ТБ (больше никогда; он имеет встроенное отключение диска на 20 минут. Я вполне уверен, что это не является причиной этого, так как все повторные тесты все еще имеют задержку в 5 секунд).

У кого-нибудь есть понимание чего-нибудь еще, что я могу попробовать? Я в основном ограничился загрузкой с некоторыми отключенными дисками, чтобы посмотреть, не вызывает ли какой-либо отдельный диск каких-либо проблем (хотя я пытался перевести все, кроме дисков 0 и 1 в автономный режим управления дисками, но безрезультатно). Любая помощь будет наиболее ценной.

РЕДАКТИРОВАТЬ: Некоторые дальнейшие выводы: после отключения всех жестких дисков (включая мой Blu-Ray привод, оставив только один SSD), проблема остается. После полного отключения Интернета и отключения обнаружения сети проблема сохраняется.

Кроме того, 5,5-секундная отметка, кажется, твердое число. Время "обхода диска" моего инструмента (то есть, сколько времени занимает чтение первого уровня каталогов каждого диска) сильно варьируется, а время чтения диска всегда находится в диапазоне 5.550-5.580. Это, кажется, указывает на то, что где-то происходит какое-то время ожидания в 5,5 секунд.

РЕДАКТИРОВАТЬ 2: Я загрузился в Windows 7 с только 2 подключенных дисков 1 ТБ. Время загрузки все еще сокращено до 5,5 секунд ожидания, даже без использования SSD, что убивает мою ведущую теорию о первопричине. Это говорит мне о том, что, возможно, есть проблема с драйверами ввода материнской платы, может быть?

Мое оборудование, на случай, если оно окажется уместным:

  • Процессор: AMD Phenom II X4 965-Black
  • Материнская плата: Gigabyte GA-790XTA-UD4
  • Видео: AMD HD 5770
  • SSD: OCZ ARC 100 240GB
  • HDD: WD Black 1TB (2013)
  • HDD: WD Green 2TB (2011)
  • HDD: WD Black 1TB (2010)

2 ответа2

6

Гор Рам сын бизнесмена.

Это был несуществующий дисковод. Никто никогда не ожидает, что у них нет драйва!

На моей материнской плате установлен контроллер флоппи-дисковода, который, по всей видимости, относится к той эпохе, когда проверка того, подключено ли что-либо, считалась пустой тратой тактов. Каждый раз, когда я запускал System.IO.Directory.GetLogicalDrives() , ожидание истечения времени ожидания призрачного диска.

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

Я такой хороший детектив.

5

К вашему сведению - отключение дисковода гибких дисков > Дисковод гибких дисков в диспетчере устройств работает для меня. Мне было лень перезагружаться и возиться в BIOS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .