Добавлено: Ср Авг 12, 2009 13:47
Заголовок сообщения:
Ну я говорил про foreground режим. Такая игра не должна так нагружать процессор. В коде основного цикла обработки сообщений явно есть, мягко говоря, неоптимальный код. Однако, если эта чать кода находится в сторонней DLL (а я боюсь, что это именно так), то сделать скорее всего ничего нельзя.
Однако я все же надеюсь. Если увижу эту часть кода на С++, то могу высказать соображения где, что и как подправить...
Да есть такая буква. Я грешил на wine, под ним часто загрузка больше чем в windows.
По отладочному логу игра на глобально карте(если не трограть мышку) все время проводит в memmove и GetTickCount, ну еще играет mp3. Попробую отключить звук, поиграться с Refresh delay.
Отрывок из лога. Могу автору прислать весь, но он достаточно большой и подавляющая его часть в данном случае бесполезна.
0009:CALL MSVCR80.memmove(00fdf000,01a6f020,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fdf000 ret=005f72ab
0009:CALL MSVCR80.memmove(00fdf800,01a6f820,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fdf800 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe0000,01a70020,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fe0000 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe0800,01a70820,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fe0800 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe1000,01a71020,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fe1000 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe1800,01a71820,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fe1800 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe2000,01a72020,00000800) ret=005f72ab
0009:RET MSVCR80.memmove() retval=00fe2000 ret=005f72ab
0009:CALL MSVCR80.memmove(00fe2800,01a72820,00000800) ret=005f72ab
001e:Call KERNEL32.GetTickCount() ret=7e8c8bfe
001e:Ret KERNEL32.GetTickCount() retval=00028fcb ret=7e8c8bfe
001e:Call KERNEL32.GetTickCount() ret=7e9528ff
001e:Ret KERNEL32.GetTickCount() retval=00028fcb ret=7e9528ff
001e:trace:dsound:DSOUND_timer (1,0,0x167040,0x0,0x0)
001e:trace:dsound:DSOUND_timer entering at 167883