[ПРОБЛЕМА] Heroes3 на двухядерном процессоре - Страница 2 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Общий - Герои Меча и Магии 3 - Heroes OF Might And Magic 3 Информация об игре и ее обсуждения.

Ответ
Страница 2 из 2
 
Опции темы
#16
Старый 07.11.2007, 12:14
  #16
^
dma
📖
Регистрация: 06.11.2007
Сообщения: 2
Регистрация: 06.11.2007
Сообщения: 2
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

Попробовал эту программку. Сделал следующие наблюдения.

С буковскими третьими "платиновыми" Героями работает, но не сразу. :) Почему-то срабатывает регулярное выражение только вида ".*", задание выражения, соответствующего только файлу Heroes3.exe (".*Heroes3.*", например), не вызывает должного эффекта.

Игра начинает тормозить, а загрузка процессора уменьшается не так стремительно, как хотелось бы. Можно предположить примерно пропорциональную зависимость тормозов от разгрузки процессора. Т.е. фактически процессор освобождается за счет притормаживания программы. На самом деле выигрыш от остановки программы в месте вызова вышеупомянутой функции, а не в каком-то другом месте, вероятно, есть, но, видимо, он не такой уж большой. Ну, а что вы хотели, как говорится. :) Этого и следовало ожидать. Кроме того, сама "прокладка" потребляет не сказать чтобы мизерную часть процессора, это заметно.

Не работает со вторыми Героями. Вероятно, вторые Герои флудят каким-то другим местом. :)

В общем, по-нормальному сделать можно, наверное, только правкой самой игры - заменить бесконечный вызов функции одним более интеллектуальным вызовом, или что-то типа того. Тем не менее, спасибо автору за проделанную работу. Если стоит задача любым способом уменьшить прожорливость третьих Героев, то этот вариант можно использовать. Особенно когда других вариантов нет вообще. :)
dma вне форума
Ответить с цитированием
#17
Старый 07.11.2007, 22:13
  #17
^
ezhfan
📖
Регистрация: 02.09.2007
Сообщения: 14
Регистрация: 02.09.2007
Сообщения: 14
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

А какой процессор, если не секрет?
Программа не уменьшает количество вычислений, необходимых "героям" для работы, она уменьшает количество "лишних" вычислений. Если процессор слабый, то может так получится, что 95% процессорного времени Герои считают и 5% - просто крутят бесконечный цикл. Программа исправляет это, но при этом сама отжирает 10% :-)
А вот если процессор мощный, то 98% - бесконечный цикл и 1-3% - семи Герои. Тут выигрыш существенен. В моём случае выигрыш заметен уже на ноутбуке 1,6 ГГц.
ezhfan вне форума
Ответить с цитированием
#18
Старый 07.11.2007, 23:24
  #18
^
dma
📖
Регистрация: 06.11.2007
Сообщения: 2
Регистрация: 06.11.2007
Сообщения: 2
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

Процессор P4 2.8GHz. Я не думаю, что абсолютная мощность процессора имеет какое-либо значение, кроме влияния на тепловыделение, конечно. :)

А откуда вообще взялась идея, что основным пожирателем процессорного времени являются вызовы функций API, и почему именно они являются лишними вычислениями? Я смотрел вызовы вторых героев, так там из win32-вызовов самым частым во время бездействия является тот самый sleep. :) Причем, количество этих вызовов не так уж велико и явно на порядки превосходит количество исполненных ассемблерных команд. Я не большой специалист во всех этих вопросах, но мне кажется, что собака неограниченного цикла зарыта где-то внутри программы, а не в ее вызовах внешних функций.

Для третьих Героев, думаю, достаточно и 3% моего процессора. Оставшиеся 97%, соответственно, крутится тупой цикл. Когда мы начинаем останавливать программу с определенной периодичностью (на вызовах определенных функций API в нашем случае), затормаживая ее, скажем, на 50%, то "полезным" Героям остается, соответственно, 1.5%, т.е. половина от необходимого. Это если смотреть в долговременной перспективе, т.е. как это ощущает пользователь. Отсюда тормоза. А с точки зрения компьютера мы делаем некоторое "свободное окно" во времени процессора, только и всего, и когда программа просыпается, она продолжает молотить бестолковые циклы в том же самом соотношении к полезной своей части - 97/3. И так будет на любом, хоть 10GHz-процессоре. Я думаю, что все обстоит вот так.

Конечно, логично было бы предположить, что программа узнает о внешних событиях, которыми руководствуется, с помощью самого частого своего вызова функций ОС, но, видимо, тут все как-то сложнее.
dma вне форума
Ответить с цитированием
#19
Старый 08.11.2007, 10:30
  #19
^
ezhfan
📖
Регистрация: 02.09.2007
Сообщения: 14
Регистрация: 02.09.2007
Сообщения: 14
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

Не API, а основной цикл программы.
Он может выглядеть так

начало:
нарисовать картинку
проверить пользовательский ввод
если прошло 10 мсек (к примеру) то
сделать шаг вычислений
конецесли
перейти на начало
------
Т.е. на слабом процессоре всё будет замечательно, а вот на сильном - раз в 10 мсек будет выполняться (сделать шаг вычислений), а в остальное время - перерисовываться картинка. Прпосто на слабом компе она будет перерисовываться, скажем, 20 раз в секунду, а на сильном - 1000 раз.
И тут, если вставить sleep(1) в нужное место :-) , то процессор будет какое-то время разгружен.

Попробую добыть вторых Героев и третьих платиновых (где-то они у меня были) и посмотреть, что на них происходит.
ezhfan вне форума
Ответить с цитированием
#20
Старый 12.04.2008, 21:29
  #20
^
Gjiod
📖
Регистрация: 12.04.2008
Сообщения: 3
Регистрация: 12.04.2008
Сообщения: 3
По умолчанию
[ПРОБЛЕМА] Запуск игры на двухядерном процессоре

т к я новичок и мб создал тему не там, ногами не пинать
но все же, как запустить на двухядерном? что ВоГ, что Полное собрание виснет практически сразу и все. Одно ядро пробывал отключать, не помогает
а играть охото
Gjiod вне форума
Ответить с цитированием
#21
Старый 16.04.2008, 05:15
  #21
^
King Arthur
 
Аватар для King Arthur
📖
Регистрация: 16.04.2008
Адрес: Авалон
Сообщения: 2
Отправить сообщение для  King Arthur с помощью ICQ
Регистрация: 16.04.2008
Адрес: Авалон
Сообщения: 2
Отправить сообщение для  King Arthur с помощью ICQ
Восклицание
Запуск игры на двухядерном процессоре

Причем тут твои два ядра?
Первый раз такое слышу... сам на athlon х2 все переиграл...
Ищи причину в другом месте, скорее всего несовместимость с видеоадаптером или еще что нибудь...
У тебя видеокарта с интеграцией?
__________________
POWER IT IS NOT JUSTICE

JUSTICE IT REAL POWER (C)


ICQ:810721
POWER IT IS NOT JUSTICE

JUSTICE IT REAL POWER (C)


ICQ:810721
King Arthur вне форума
Ответить с цитированием
#22
Старый 18.04.2008, 15:10
  #22
^
Ник 1
 
Аватар для Ник 1
📖
Регистрация: 20.12.2007
Адрес: Владивосток
Сообщения: 13
Регистрация: 20.12.2007
Адрес: Владивосток
Сообщения: 13
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

Спасибо добрым людям, они уже побороли эту проблему. Здесь ссылка есть лечилки для платиновых героев 1,2,3.
__________________
Победил соперника и ты герой. Проиграл более слабому сопернику и ты уже человек.Иногда так хочется быть героем.
Победил соперника и ты герой. Проиграл более слабому сопернику и ты уже человек.Иногда так хочется быть героем.
Ник 1 вне форума
Ответить с цитированием
#23
Старый 27.04.2008, 00:18
  #23
^
Gilmore
📖
Регистрация: 27.04.2008
Сообщения: 2
Регистрация: 27.04.2008
Сообщения: 2
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

да у меня тоже виснут вообщем
у меня атлон 64 х2 4800+
винда XP SP2 Profession Rus, версия 2002
Видеокарта Жифорс 8600 гтс 256мб
память ддр2 2гб

Всякие вариации совместимостью с виндой 98 пробовал, не помогает...
Gilmore вне форума
Ответить с цитированием
#24
Старый 27.04.2008, 09:06
  #24
^
C13
 
Аватар для C13
📖
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

<вырезано> могу посоветовть обновить дрова на видюху и переустановить игру. www.nvidia.ru А процессор здесь в натуре не причём.
C13 вне форума
Ответить с цитированием
#25
Старый 27.04.2008, 11:39
  #25
^
Amko
 
Аватар для Amko
Координатор
📖
Регистрация: 13.06.2007
Адрес: Immaterium
Сообщения: 4711
Отправить сообщение для  Amko с помощью ICQ
Регистрация: 13.06.2007
Адрес: Immaterium
Сообщения: 4711
Отправить сообщение для  Amko с помощью ICQ
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

У меня Core2Duo. Под ХР трабл не наблюдал.
Amko вне форума
Ответить с цитированием
#26
Старый 27.04.2008, 12:09
  #26
^
C13
 
Аватар для C13
📖
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

Приведу данные рекомендации, если что спрашивайте.
В двухъядерной системе наиболее часто наблюдаемая проблема (с которой можно столкнуться и в случае с процессором, c технологией Hyper-Threading) состоит в снижении производительности по сравнению с аналогичной одноядерной системой. К тому же в играх наблюдается, к примеру, резкое увеличение внутриигровой скорости (не производительности!). Причиной этого является некорректный выбор таймера операционной системы - вместо таймера управления питанием ACPI используется таймер TSC, что приводит к ошибкам в программах, задействующих в своей работе вызов функции ядра QueryPerformanceCounter.

В таком случае необходимо сделать следующее: в первую очередь нужно добавить в файл boot.ini, расположенный в корневом каталоге диска C, в конец строчки вида «multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"/noexecute=optin/fastdetect» ключ/usepmtimer. Если вы не видите в Проводнике данного файла, то выберите в меню в разделе Сервис пункт Свойства папки . В появившемся окне на вкладке Вид уберите галочку возле пункта Скрывать защищенные системные файлы и в разделе Скрытые файлы и папки выберите Показывать скрытые файлы и папки . Далее владельцы процессоров AMD должны скачать и установить программу AMD DualCore Optimizer, Заметим, что если вы используете для управления частотой процессора не системные средства, а программу RMClock версии 2.15, то достаточно только добавить /usepmtimer в загрузочный файл. Если же, несмотря на выполнение вышеописанных действий, в ходе игры все равно возникают проблемы (зависания, выбрасывание на Рабочий стол и т. п.), то стоит попробовать жестко привязать игру к одному из ядер. Для этого после запуска игры нажимаем Ctrl+Alt+Del , в появившемся диспетчере задач щелкаем правой кнопкой на игре, выбираем пункт Перейти к процессам , затем кликаем опять правой кнопкой на выделенном процессе и выбираем Задать соответствие . В появившемся окне снимаем галочку возле одного из ядер, какого именно - не имеет значения, после чего закрываем окно, сам диспетчер задач и возвращаемся в игру. Если же после указанных действий проблемы не исчезли, и при этом у вас установлена видеокарта фирмы NVIDIA, можно попробовать отключить многопоточные оптимизации в видео-драйверах. Запускаем редактор реестра ( Пуск -> Выполнить -> regedit.exe), идем по адресу HKey_Local_MachineHardwareDeviceMapVideo и выписываем из переменной devicevideo0 адрес, по которому расположены настройки видеокарты. Заметим, что указанный адрес у систем Windows 2000 и Windows XP отличается, в Windows 2000 он будет иметь вид \REGISTRY\Machine\System\ControlSet001\Services\nv \Device0 , в то время как в Windows XP \Registry\Machine\System\Current ControlSet\Control\Video{DD18ED74-F584-4145-B29B-E3A6C6189FAA}\0000 . Переходим по указанному адресу, учитывая следующее: \Registry в данном случае говорит о том, что информация находится в реестре, а \Machine - что она хранится в разделе HKEY_LOCAL_MACHINE . Щелкаем мышью в правой части окна, выбираем Создать - Параметр DWORD , называем его OGL_ThreadControl и присваиваем ему значение 2 . Для отключения многопоточности в приложениях Direct3D нужно создать переменную WTD_EXECMODEL того же типа и присвоить ей значение 0 . [[COLOR="Red"Заметим, что обычно производители игр достаточно оперативно реагируют на проблемы такого рода, и прежде чем отключать поддержку двухъядерников, стоит проверить, нет ли COLOR]патча для игры, исправляющего возможные ошибки.

Добавлено через 17 минут
В прошлый раз погорячился про проц, думал что о пятёрке речь.
C13 вне форума
Ответить с цитированием
#27
Старый 27.04.2008, 14:32
  #27
^
Gilmore
📖
Регистрация: 27.04.2008
Сообщения: 2
Регистрация: 27.04.2008
Сообщения: 2
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

C13;172867Ну хрен его знает, могу посоветовть обновить дрова на видюху и переустановить игру. www.nvidia.ru А процессор здесь в натуре не причём.
Стоит последнее обновление


C13;172883 Далее владельцы процессоров AMD должны скачать и установить программу AMD DualCore Optimizer,
Стоит

C13;172883Если же, несмотря на выполнение вышеописанных действий, в ходе игры все равно возникают проблемы (зависания, выбрасывание на Рабочий стол и т. п.), то стоит попробовать жестко привязать игру к одному из ядер. Для этого после запуска игры нажимаем Ctrl+Alt+Del , в появившемся диспетчере задач щелкаем правой кнопкой на игре, выбираем пункт Перейти к процессам , затем кликаем опять правой кнопкой на выделенном процессе и выбираем Задать соответствие . В появившемся окне снимаем галочку возле одного из ядер, какого именно - не имеет значения, после чего закрываем окно, сам диспетчер задач и возвращаемся в игру.
Не помогает
C13;172883Если же после указанных действий проблемы не исчезли, и при этом у вас установлена видеокарта фирмы NVIDIA, можно попробовать отключить многопоточные оптимизации в видео-драйверах. Запускаем редактор реестра ( Пуск -> Выполнить -> regedit.exe), идем по адресу HKey_Local_MachineHardwareDeviceMapVideo и выписываем из переменной devicevideo0 адрес, по которому расположены настройки видеокарты. Заметим, что указанный адрес у систем Windows 2000 и Windows XP отличается, в Windows 2000 он будет иметь вид \REGISTRY\Machine\System\ControlSet001\Services\nv \Device0 , в то время как в Windows XP \Registry\Machine\System\Current ControlSet\Control\Video{DD18ED74-F584-4145-B29B-E3A6C6189FAA}\0000 . Переходим по указанному адресу, учитывая следующее: \Registry в данном случае говорит о том, что информация находится в реестре, а \Machine - что она хранится в разделе HKEY_LOCAL_MACHINE . Щелкаем мышью в правой части окна, выбираем Создать - Параметр DWORD , называем его OGL_ThreadControl и присваиваем ему значение 2 . Для отключения многопоточности в приложениях Direct3D нужно создать переменную WTD_EXECMODEL того же типа и присвоить ей значение 0 . [[COLOR="Red"Заметим, что обычно производители игр достаточно оперативно реагируют на проблемы такого рода, и прежде чем отключать поддержку двухъядерников, стоит проверить, нет ли COLOR]патча для игры, исправляющего возможные ошибки.

Добавлено через 17 минут
В прошлый раз погорячился про проц, думал что о пятёрке речь.
Не помогает



На каком-то форуме читал, что виноват СервисПак 2 Винды XP, хз
Gilmore вне форума
Ответить с цитированием
#28
Старый 02.05.2008, 12:56
  #28
^
Gjiod
📖
Регистрация: 12.04.2008
Сообщения: 3
Регистрация: 12.04.2008
Сообщения: 3
По умолчанию
Re: Запуск игры на двухядерном процессоре

King Arthur;169910Причем тут твои два ядра?
Первый раз такое слышу... сам на athlon х2 все переиграл...
Ищи причину в другом месте, скорее всего несовместимость с видеоадаптером или еще что нибудь...
У тебя видеокарта с интеграцией?
видео ати радеон 1600про. раньше с ним же на процессоре атлон 3000+ отлично игралось
Gjiod вне форума
Ответить с цитированием
#29
Старый 06.05.2008, 10:44
  #29
^
C13
 
Аватар для C13
📖
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

Gjiod и Gilmor, напишите что за материнки, что нибудь придумаем, а игруу по любому запустим!!!
C13 вне форума
Ответить с цитированием
#30
Старый 19.06.2008, 16:41
  #30
^
Javdet
 
Аватар для Javdet
📖
Регистрация: 18.03.2008
Адрес: Симферополь. RU
Сообщения: 3172
1503
Отправить сообщение для  Javdet с помощью ICQ
Выставка наград
Регистрация: 18.03.2008
Адрес: Симферополь. RU
Сообщения: 3172
1503
Отправить сообщение для  Javdet с помощью ICQ
Выставка наград
По умолчанию
Re: [ВОПРОС] 100% Загрузка процессора в героях.

Недавно на бае нашёл похожую тему, такая прога есть и неплохо работает - сокращает до 10-15%. Тему почти никто не смотрит, поэтому искать щас в лом. Если кому-нить нужно - стучите в асю. 432-146-477
Javdet вне форума
Ответить с цитированием
Ответ
Страница 2 из 2


Опции темы



Часовой пояс GMT +4, время: 12:15.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru