glob2-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [glob2-devel] perfs


From: Luc-Olivier de Charrière
Subject: Re: [glob2-devel] perfs
Date: Mon, 20 Oct 2003 19:28:24 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20031020

Martin S Nyffenegger wrote:

3) oubliez désormais de compiler glob2 sans optimisations.


avec ça prend environs 4 fois plus long ;-)

4 fois?

Voilà le profiling d'une partie entière avec 3 équipes sur une 128x128.
On voit clairement que les gradients ne sont pas un problème.
Idéalement, il faudrait optimiser la compilation de Map.cpp seulement, pour avoir un temps de compilation rapide et d'execution rapide.

Each sample counts as 0.01 seconds.
% cumulative self self total time seconds seconds calls s/call s/call name 72.90 204.54 204.54 23419190 0.00 0.00 SDLDrawableSurface::drawFilledRect(int, int, int, int, unsigned char, unsigned char, unsigned char, unsigned char) 11.86 237.81 33.27 27784259 0.00 0.00 SDLSprite::draw(SDL_Surface*, SDL_Rect const*, int, int, int) 3.93 248.83 11.02 513939666 0.00 0.00 SDLDrawableSurface::drawPixel(int, int, unsigned char, unsigned char, unsigned char, unsigned char) 3.50 258.65 9.82 55089 0.00 0.00 Game::drawMap(int, int, int, int, int, int, int, bool, bool, bool, bool) 1.49 262.82 4.17 116720 0.00 0.00 SDLDrawableSurface::drawCircle(int, int, int, unsigned char, unsigned char, unsigned char, unsigned char) 0.81 265.09 2.27 32482 0.00 0.00 Map::updateLocalGradient(Building*, bool) 0.81 267.35 2.26 1016222 0.00 0.00 SDLSprite::Palette::setColor(unsigned char, unsigned char, unsigned char) 0.70 269.31 1.96 14777600 0.00 0.00 GAG::HSVtoRGB(float*, float*, float*, float, float, float) 0.50 270.71 1.40 14893050 0.00 0.00 GAG::RGBtoHSV(float, float, float, float*, float*, float*) 0.49 272.09 1.38 56137 0.00 0.00 Map::updateGlobalGradient(unsigned char*) 0.42 273.28 1.19 172416 0.00 0.00 SDLDrawableSurface::drawLine(int, int, int, int, unsigned char, unsigned char, unsigned char, unsigned char)

4) qui sait utiliser altivec et mmx2 ? ou qui connait une bonne doc ?

Pour Altivec, j'ai trouvé la doc. Le problème est qu'il faut vraiment lui écrire du code spécifique. Le plus simple est que tu fasse déjà tes algos comme tu le pense.. Une fois les algos écrits et qu'ils marchent (donc glob2 est testé et ne fais plus vraiment d'erreurs de comportement), tu m'indique où sont les parties de code qui ont le plus la possibilité de bénéficier d'altivec (genre ta déscente de gradiant serai super optimisable je pense)

Après reflexion, je ne trouve pas comment on peut optimiser le code avec des instructions vectorielles...pour l'instant.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]