3

Я недавно купил Surface Pro 3 (Win 8.1, Core i7, 256 ГБ Samsung SSD), в основном для разработки .NET, и разочарован производительностью.

Например, полное восстановление проекта среднего размера с использованием msbuild из командной строки постоянно занимает примерно в три раза больше времени, чем на моем трехлетнем Lenovo X220T (Win7, Core i5, 128 ГБ SSD, ESET NOD 32 Antivirus); ~ 3 минуты 30 секунд против ~ 1 минуты 10 секунд.

Я не вижу никаких признаков ни процессора, ни насыщенности диска при сборке. Я пытался временно отключить Защитник Windows, но это не имело никакого значения. Я применил все обновления из Центра обновления Windows, включая последнее обновление прошивки от января 2015 года, но это также не имело никакого значения. Я попытался оптимизировать диск с помощью встроенных инструментов Windows. Там тоже не повезло.

Единственная вещь, о которой я могу думать прямо сейчас и которая может быть проблемой, - это BitLocker, но я не могу найти никаких реальных доказательств того, что кто-либо значительно повысил производительность, отключив BitLocker. Я также немного не хочу попробовать это.

Любые советы о том, где продолжить это?

1 ответ1

4

Я верю, что нашел виновника.

Процессоры в разных экземплярах на самом деле не так уж отличаются по своим возможностям:

Сообщается Windows как (соответственно):

  • «Процессор Intel® Core i5-2520M с тактовой частотой 2,50 ГГц и 2,50 ГГц»
  • «Процессор Inter(R) Core(TM) i7-4650U с частотой 1,70 ГГц и 2,30 ГГц»

Судя только по скоростям процессора, можно ожидать некоторой разницы в скорости компиляции (пока не обращайте внимания на размеры кэша, наборы инструкций и т.д.). Но затем я запустил Performance Monitor во время сборки и проверил загрузку процессора и частоту:

При сборке частота процессора у Lenovo немного меняется, но в среднем составляет ~ 2,3 ГГц, в то время как у Surface Pro 3 она установлена на 759 МГц. Разделите два числа, и результат будет близок к 3 - что я и наблюдал изначально.

Я подумал, что может быть возможность заставить ЦП использовать более высокую частоту с помощью параметров электропитания, но в Surface Pro 3 настройка диапазона частот ЦП, похоже, отсутствует. Например, нет плана "Высокая производительность", и даже расширенные настройки в соответствии с пользовательским планом не учитывают связанные с процессором вещи. (И да, я измеряю все, что подключено). Я отправлю отдельный вопрос по этому конкретному вопросу.

Конечно, это может оказаться не связанным с процессором в конце концов, но сейчас я буду придерживаться этого пути.

Обновить:

Выключение InstantGo, кажется, сделало трюк! По-прежнему невозможно явно настроить регулирование скорости ЦП с помощью параметров электропитания, но при запуске MSBuild ЦП теперь работает на частоте 2,3 ГГц.

Это фактически приводит к небольшому (на 10-15%) сокращению времени сборки на Surface Pro по сравнению с X220T. Возможно, здесь поможет большой кэш L3 или SSD.

Примечание: чтобы отключить InstantGo, я включил Hyper-V на поверхности. Кажется, нет никакого явного способа отключить это, как я выяснил.

Примечание 2. Отключение InstantGo не обходится без цены - IIUC означает медленное возобновление, отсутствие активности в режиме ожидания и более высокое энергопотребление. Меньше поверхности, больше обычного ПК. Вы должны решить для себя, каковы ваши приоритеты.

Обновление 2:

Хорошо, так что это может быть глупо, как глупо. Позвольте мне немного уточнить мои выводы. Важной деталью, которую я не упомянул с самого начала, было то, что я подключаюсь к Surface с помощью удаленного рабочего стола. Сейчас я верю в то, что:

  • Когда я делал свои оригинальные тесты, Surface уже был в режиме Instant Go . Экран был отключен.
  • В этом режиме процессор, кажется, "блокируется" на частоте 759 МГц независимо от нагрузки.
  • Windows 8.1 на Surface Pro не может распознать наличие активного пользователя, подключенного через RDP, и переводит систему в режим InstantGo, когда экран отключается таймером или пользователем (мной), нажимающим кнопку питания.

Таким образом, при запуске "эталонных" сборок, фактически не делая ничего, кроме того, чтобы убедиться, что дисплей Surface включен, я получаю даже немного более быструю сборку, чем увеличение на 10-15% при включении Hyper-V на машине - примерно еще 5- 10%. Это, вероятно, связано с тем, что процессор теперь иногда использует Turbo Boost во время сборок.

При этом включение Hyper-V, похоже, "блокирует" процессор до 2,3 ГГц независимо от того, включен дисплей Surface или нет. Не удивительно, учитывая, что в этой конфигурации устройство никогда не переключается в режим InstantGo .

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