June 6th, 2007

nyaload

(no subject)

Сделал мини-тест как бы игрового кода на Python - http://www.everfall.com/paste/id.php?0yg3jc12kvd8

Результаты - 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, спит всю дорогу, а С++ интерполирует". Оно нетривиальное, наверное не буду делать для текущего проекта...