Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Об игре (http://www.trainsim.ru/forum/forumdisplay.php?f=17)
-   -   Постоянный маленький FPS (http://www.trainsim.ru/forum/showthread.php?t=13221)

Nxavier 10.12.2010 00:25

Постоянный маленький FPS
 
Народ, подскажите пожалуйста, может кто сталкивался, лечится это или нет?

Обновил железо, поставил MSTS и с разочарованием обнаружил, что он не хочет выдавать больше 16 FPS. Точнее, стабильно держит 16 FPS что ни делай в игре.

Конфигурация: Core i7 2.8, 4 Gb, GeForce GTX 285 1Gb, Windows 7 x64, драйвер видюхи последний.
MSTS: пока что без каких-либо дополнений, изменение настроек видео в игре никаких результатов ни в какую сторону не дает.

Обидно очень, думал на нормальном железе нормально поездить можно будет, а тут... :(

Zabor 10.12.2010 00:47

По Core i7 не помню, найди конкретно свой процессор (точный тип) в инете и определи важный параметр - как работает встроенный кэш, который вроде 8 МБ у тебя должен быть.

Главный вопрос распределение этого кэша между ядрами, если процессор может отдать все 8 МБ под нужды одного ядра, обслуживающего MSTS тогда все ОК, если жестко закреплено по 1/4 за ядром, тогда эффективно работать MSTS он помочь не сможет.

Nxavier 10.12.2010 01:30

Спасибо за ответ.

Но не совсем понимаю, причем тут именно кэш. Даже если он жестко распределен по 1/4 на ядро, неужели только MSTS будет об это капризничать? Не верится как-то. Или там что-то особенное в нем есть?

Ведь другие игры нормально идут (как более легкие, так и более тяжелые), например, "Ка-50", который до выхода патча мог работать исключительно на одном ядре, при своей прожорливости выдавал 30-40 кадров. А тут как будто специально лимит какой-то стоит...

(P.S. Признаюсь, не силен в железе)

Zabor 10.12.2010 01:58

MSTS не использует многопоточность, отсюда процессор рассматривается как одноядерный, при этом MSTS еще и не умеет передавать видеокарте работу по просчету положения полигонов (в 2001 году видеокарты делали это не так, как современные).

Отсюда растет нагрузка на процессор, посчитать то он быстро посчитает, хватит даже целерона 1,8 ГГц, но обеспечить ввод и вывод данных без объемного кэша процессора и быстрой шины весьма затруднительно.

От 10 ядер толку будет ровно как и от одного и тут важно какой объем общего кэша ему (одному ядру) доступен.

Когда апгрейдил машинку именно под MSTS (других игрушек у меня просто нет на компьютере) выбрал двухядерный E8400, да старый, хотя по бюджету мог потянуть любой из современной линейки, но он был единственным с кэшем 6 МБ и гарантией того, что весь кэш будет использоваться любым ядром полностью при необходимости.

Результат FPS 50-58, при очень загруженных станциях 25-30.

Vlad 10.12.2010 09:55

Кэш здесь совершенно не при чем. Я сталкивался с подобным на похожей машине с процом i7 920 под Win7x64.
Первое-ни в коем случае нельзя ставить в свойствах МСТС совместимость с ХР, при этом фпс резко падает.
Второе-в биосе мамки под core i7 может быть один неприятный глюк, связанный с понижением частоты процессора (снижением множителя) с целью энергосбережения. И проявляется он именно в 7-й винде, под ХР все работает. Поэтому, если первый совет не поможет, надо поставить на комп прогу CPU-Z, запустить ее, затем, не закрывая, запустить МСТС. И проверить частоту процессора в этот момент. Если она окажется не максимальной, то надо либо обновить биос мамки (в новых биосах этого глюка не должно быть), либо зайти в биос и отключить в нем функцию EIST

Виталик 10.12.2010 21:41

МСТС кстати очень часто на современном Core i7 выдаёт низкий ФПС. Здесь нужно разобраться в архитектуре процессора Core i7. В процессоре 4 ядра. Каждое ядро имеет свой кэшL1 и кэш L2, в кэш L1 хранятся инструкции для запуска страниц, в кэш L2 уже сами страницы кэш L2 довольно маленький - 256 кб. А кэш L3 8 мб является общим на все ядра (в Core 2 Duo кэш L1 был в каждом ядре, а L2 - общий). По 1/4 он [I]не поделён[/I] на каждое ядро. Во-вторых, в i7 вместо шинного интерфейса связи между ядрами сделали [U]канальный[/U] интерфейс, что увеличило производительность в современных приложениях, и убрали [B][U]арбитр шины[/U][/B] (был в Core2 Duo), который "следил" за выполняемыми поцессами и пускал другой процесс только после выполнения первого. В Core i7 сделали [I][B]контроллер памяти[/B][/I], он позволял параллельно выполняться многим процессам на разных ядрах. Обмен информации между кэш L1,2 и кэш L3 осуществляется через контроллер памяти. А МСТС не умеет использовать все возможности данного процессора, в частности, неправильно распределяется по кэшу, грузит, похоже, в основном L2, L1, а L3 оставляет полупустым. В целом Core i7 заточен под современные программы и игры, а под МСТС лучше взять Core 2 Duo мне кажется.

Dublin 10.12.2010 21:59

Вобщем надо под МСТС собирать компутер из запчастей 2001 года выпуска

Vlad 10.12.2010 22:22

[QUOTE=Виталик;223496]МСТС кстати очень часто на современном Core i7 выдаёт низкий ФПС. Здесь нужно разобраться в архитектуре процессора Core i7. В процессоре 4 ядра. Каждое ядро имеет свой кэшL1 и кэш L2, в кэш L1 хранятся инструкции для запуска страниц, в кэш L2 уже сами страницы кэш L2 довольно маленький - 256 кб. А кэш L3 8 мб является общим на все ядра (в Core 2 Duo кэш L1 был в каждом ядре, а L2 - общий). По 1/4 он [I]не поделён[/I] на каждое ядро. Во-вторых, в i7 вместо шинного интерфейса связи между ядрами сделали [U]канальный[/U] интерфейс, что увеличило производительность в современных приложениях, и убрали [B][U]арбитр шины[/U][/B] (был в Core2 Duo), который "следил" за выполняемыми поцессами и пускал другой процесс только после выполнения первого. В Core i7 сделали [I][B]контроллер памяти[/B][/I], он позволял параллельно выполняться многим процессам на разных ядрах. Обмен информации между кэш L1,2 и кэш L3 осуществляется через контроллер памяти. А МСТС не умеет использовать все возможности данного процессора, в частности, неправильно распределяется по кэшу, грузит, похоже, в основном L2, L1, а L3 оставляет полупустым. В целом Core i7 заточен под современные программы и игры, а под МСТС лучше взять Core 2 Duo мне кажется.[/QUOTE]

Не согласен. После описанных в моем предыдущем посте настроек МСТС на Core i7 работает лучше, чем на процах Core 2 Duo. Влияние кэша и его размер на МСТС влияют, но крайне незначительно. Так, в свое время, я менял Core 2 Duo с кэшем 4Мб на такой же проц с кэшем 6 Мб. Сколь-нибудь заметного прироста фпс я не наблюдал (может быть и был прирост, но не более, чем на 3-5%

Vlad 10.12.2010 22:23

[QUOTE=Dublin;223497]Вобщем надо под МСТС собирать компутер из запчастей 2001 года выпуска[/QUOTE]

И получить 12-15 фпс в дефолтных сценариях на дефолтном NEC'e. Очень умно сказано:D

Zabor 10.12.2010 22:57

[QUOTE=Vlad;223504]...Так, в свое время, я менял Core 2 Duo с кэшем 4Мб на такой же проц с кэшем 6 Мб. Сколь-нибудь заметного прироста фпс я не наблюдал (может быть и был прирост, но не более, чем на 3-5%[/QUOTE]

Не факт, что 4 МБ были полностью использованы, вполне могла быть ситуация когда 4 МБ хватало для конкретного маршрута и положения на маршруте, данные успевали обрабатываться и благополучно заменяться новыми.

Про линейную зависимость я не говорил, замедление в МСТС может происходить из-за любого компонента, ставшего "слабым звеном", могу с уверенностью утверждать на основе многочисленных экспериментов, что кэш CPU гарантировано станет этим "слабым звеном" при объеме 2 и менее МБ. После этого ни производительная видеокарта, ни быстрая шина и память уже ничем не помогут FPS.

[QUOTE]Вобщем надо под МСТС собирать компутер из запчастей 2001 года выпуска[/QUOTE]Где это в 2001 г. была кора-два дуба? =))

[B]Виталик[/B], т.е. i7 в принципе не может обеспечить в [B]однопоточном приложении[/B] производительность, достигаемую Core 2 Duo при том же однопоточноном приложении?

Толяныч 10.12.2010 23:05

[QUOTE=Zabor;223511]Где это в 2001 г. была кора-два дуба? =))[/QUOTE]
О таком тогда никто даже не мечтал :) . Одноядерка 300 мГц была нормой.

Dublin 11.12.2010 02:47

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

Denis31 11.12.2010 13:34

У меня на I3-550 + GTS450 бывает так, что фпс чуть ли не 50, но в определенных местах он падает до 10, именно на одном и том же перегоне, то есть при одинаковых условиях... может идет какая-то подрузка объектов и процессор их не успевает обрабатывать?

Vlad 11.12.2010 14:56

[QUOTE=Denis31;223598]У меня на I3-550 + GTS450 бывает так, что фпс чуть ли не 50, но в определенных местах он падает до 10, именно на одном и том же перегоне, то есть при одинаковых условиях... может идет какая-то подрузка объектов и процессор их не успевает обрабатывать?[/QUOTE]

При подгрузке объектов сим как бы зависает на секунду-две. Единственный способ борьбы с подобным явлением-установка SSD винта на комп. Если же на определенном перегоне держиться небольшой фпс (10-15), а на других перегонах 50-60, то это является особенностью маршрута (слишком много объектов в данном месте ) или сценария (большое количество статики в данном месте) и не является ни проблемой компа, ни проблемой МСТС-а. Лечится это только разгоном компа, и ничем больше.

Виталик 11.12.2010 15:42

[QUOTE=Zabor;223511][B]Виталик[/B], т.е. i7 в принципе не может обеспечить в [B]однопоточном приложении[/B] производительность, достигаемую Core 2 Duo при том же однопоточноном приложении?[/QUOTE]

Здесь зависит от самого приложения. В теории, производительность i7 даже в однопоточном режиме гораздо лучше, так как нету арбитра шины и кэш L1, L2 есть в каждом ядре. Но это очень хорошо заметно на современных приложениях. Здесь всё дело в архитектуре самого МСТС, в частности, компиллятора. Он не может на все 100 использовать новую архитектуру процессора Intel Core i7, такие как виртуальная адресация регистров и объм кэша. Поэтому заметного прироста производительности и нету. Приходится шаманить с бубном, чтобы как-то повысить ФПС.

Ещё добавлю: МСТС, похоже, нужны больше гигагерцы. Компания Intel после Pentium4 выбрала стратегию, что "мускулы хорошо, но ещё нужно иметь и ум". То есть повышать дальше гигагерцы стало практически невозможным из-за тепловыделения и резкого возрастания стоимости. Они полностью сменили архитектуру процессоров, организацию работы кэша, уменьшили количество команд с 360 до 30, так как P.4 было 360 команд и многие из них почти дублировали друг друга. Гигагерцы в i7 меньше чем в том же P.4 или Core 2 Duo, а производительность гораздо выше. А машинные и загрузочные коды МСТС явно не умеют использовать все эти возможности.


Текущее время: 12:40. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim