Показать сообщение отдельно
Старый 16.12.2009, 11:13   #88
Radiotrance
Опытный
 
Регистрация: 23.03.2008
Адрес: Новосибирск
Сообщений: 145
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Radiotrance стоит на развилке (репутация по умолчанию)
Отправить сообщение для Radiotrance с помощью ICQ
По умолчанию

Давайте с картинками, чтобы было понятней:

Случай 1, параметр PerfEnablePackageIdle = 0. При этом частота каждого ядра регулируется независимо, по мере его загрузки. Запускаем Winrar, садим его на одно ядро и вот что видим:

Одно ядро загружено на 100% и работает на полной частоте, остальные - на минимальной, т.к. на них загрузки нет.

Если мы снимем Winrar c одного ядра и посадим на оба, он влегкую загрузит оба, и второе ядро тоже перейдет на полную частоту. Но в случае с MSTS картина совсем другая, приложение-то однопоточное. В лучшем случае ОС корректно это определит и не станет распараллеливать нагрузку, хоть вы ее об этом и просите. В худшем - она отдаст процентов 30 на второе ядро, КОТОРОЕ ОСТАНЕТСЯ РАБОТАТЬ НА МЕНЬШЕЙ ЧАСТОТЕ. Получается некая рассинхронизация, у меня это приводит к падению FPS раза в полтора. Подключаем третье, четвертое ядро - FPS падает еще сильнее.

Случай 2, параметр PerfEnablePackageIdle = 1. В данном варианте частоты всех ядер регулируются одновременно, то есть если хотя бы одно из них чем-то загружено, все остальные тоже будут работать на полной частоте.

(на разницу 3000-3200Мгц внимания не обращайте, это невовремя включенный разгон)
Здесь, при принудительном распараллеливании MSTS на несколько ядер падения FPS почти нет. Точнее, вроде бы что-то есть, но в пределах 1-3 FPS. На фоне 30 - несущественно. Но по энергосбережению, нагреву радиатора CPU, повышение темпертуры воздуха в корпусе и т.п. разница значительная. Градусов на 5-8 с моим пассивным охлаждением процессора. Смысла делать так я не вижу.

И самое главное. Повышения производительности при подключении второго и остальных ядер к процессу train.exe не наблюдалось ни разу. В лучшем случае FPS не падал.

Как я понимаю, чтобы получить выгоду от второго ядра, процесс должен уметь это делать (загружать одно ядро на 100%, подключать еще одно, скажем, на 30%, итого 130% загрузки). Средствами ОС этого не сделать. ОС может раскидать ваши 100% по разным ядрам в зависимости от их загрузки другими приложениями, и таким образом устроить одновременную работу того же винрара и мстс без потери производительности в обоих, но сделать загрузку более 100% для однопоточного приложения - не может.

Решения я вижу в установке CPU Control с установкой для train.exe единственного, отдельного, незагруженного вашими фоновыми задачами ядра.

Тестирование производилось на статичной сцене, поезд стоял на станции. FPS на одном ядре 28-30, при распараллеливании падал сначала до 16, потом до 11 и до 7.
AMD Phenom II x3 720 с разблокированным четвертым ядром.
Radeon 4850 512Mb.
1280x1024, полностью включенная анизотропия и сглаживание.

P.S. Для сравнения с земляком Алексеем, напустившим всех собах на сложные маршруты. В Зилупе на перегонах FPS у меня под 40.

И я - за красивую КС.

Последний раз редактировалось Radiotrance; 16.12.2009 в 11:23.
Radiotrance вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА