| Пушыстый ( @ 2007-06-06 16:38:00 |
Сделал мини-тест как бы игрового кода на Python - http://www.everfall.com/paste/id.php?0y g3jc12kvd8
Результаты - 200 FPS если писать "pos += vel * dt" и 1000 FPS если писать "madd(pos, vel, dt)". (Аналогичный код на плюсах - FPS = 77'000 в Debug -O0/Od, FPS = 272'000 в Release -O3/Ox)
Неприятно :(, значит на каждый кадр вызывать на каждый объект - напрашиваться на геморрой. Реальные нагрузки гораздо больше на каждый объект, даже когда они не двигаются, а просто рисуются, и я не могу отдать 100% времени на скрипты.
Правда, я не пробовал оптимизаторы вроде psyco (сомеваюсь правда, вряд ли он что-то сделает против создавания объектов на GC на каждый += *).
Кто-нибудь не сделает тест такого же кода на lua/squirrel/psyco? psyco мешает embeddig или нет?
Ещё замечу, что 200 объектов одновременно у меня двигаться не будут, так что думаю взлетит.
Так же возможны хитрые оптимизации "скрипт расставляет только key-poits, спит всю дорогу, а С++ интерполирует". Оно нетривиальное, наверное не буду делать для текущего проекта...
Результаты - 200 FPS если писать "pos += vel * dt" и 1000 FPS если писать "madd(pos, vel, dt)". (Аналогичный код на плюсах - FPS = 77'000 в Debug -O0/Od, FPS = 272'000 в Release -O3/Ox)
Неприятно :(, значит на каждый кадр вызывать на каждый объект - напрашиваться на геморрой. Реальные нагрузки гораздо больше на каждый объект, даже когда они не двигаются, а просто рисуются, и я не могу отдать 100% времени на скрипты.
Правда, я не пробовал оптимизаторы вроде psyco (сомеваюсь правда, вряд ли он что-то сделает против создавания объектов на GC на каждый += *).
Кто-нибудь не сделает тест такого же кода на lua/squirrel/psyco? psyco мешает embeddig или нет?
Ещё замечу, что 200 объектов одновременно у меня двигаться не будут, так что думаю взлетит.
Так же возможны хитрые оптимизации "скрипт расставляет только key-poits, спит всю дорогу, а С++ интерполирует". Оно нетривиальное, наверное не буду делать для текущего проекта...