HTML

gondolataim elsősorban játékfejlesztésről

Elsősorban játékfejlesztés magyarul: az enginem fejlesztése során felmerülő problémák, ötletek, tévutak stb dokumentálása, amely számomra és talán mások számára is hasznos lehet később Másodsorban gondolatok szavakban...

Kapcsolat:
aalberik 'at' gmail 'dot' com

Haletető

Galéria

Címkék

Összes

Linkblog

Naptár

május 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

telik a jesítmény

2009.06.06. 20:36 :: syam

Miközben a fények kezelésén agyaltam a mai nap bevillant egy gondolat, miszerint teljesítményt kellene mérnem az engine-mmel. Vagyis melyik függvényben tölti a cpu az idejét leginkább. A mérést debug módban végeztem.

A mainloop:

  1. A swapbuffers végzett első helyen kb 87%-kal, ami ugye nem más, mint a renderelés kb 99%a.
  2. Második helyen az advance nevű függvényem szerepel közel 7%-kal.
  3. A dobogó utolsó helyére egy titokzatos unknown függvény került 3%-kal.
  4. A negyedik helyet a render szerezte meg a maga 1,6 %-ával.
  5. Az ötödik helyen az input lekérdezése áll 0.3%-kal.

Most vesézzük ki az advance függvényt.

  1. Na most jön a meglepetés: 80%-kal a NpGetPhysicsSDK nevezetű függvény viszi a pálmát.
  2. Második helyen a scenegraph-ban mozgatást végző függvény áll szerény 8.2%-kal.
  3. Harmadik helyen a szereplők tevékenységéért felelős Do függvény áll 6,5%-kal
  4. A negyedik helyre az aktív szereplők scenegraph-ban elvégzett műveleteit végrehajtó függvény jutott kerek 4,9%-kal.

Nézzük mit rejt a 2. helyen végzett függvény:

  1. Az első helyen a scenegraph csomópontjait aktivizáló függvény van, de mindössze 54%-kal!
  2. A második helyen 46%-kal a free függvény áll.

Ez a free függvény eredetileg egy delete operátor volt és akkor az arányok is mások voltak: első helyen a delete operátor állt 57%-kal a második helyre szorítva a "lényeges" függvényt...

Vessünk közelebbi pillantást a Do függvény mélyére, ahol a szereplőnek update függvénye található:

  1. Első helyen a fizikai test információit lekérdező függvény végzett 41%-kal, amelyben 100%-ot egy NxMat34 utasítás visz el. Gyanítom ezt is érdemes lenne lecserélni....
  2. Második helyre ismét egy egzotikum került NxCreateCoreSDK névvel. Ő szerény 30%-ba kerül.
  3. Az utolsó két helyre sikerült felkapaszkodnia két saját matematikai függvényemnek is 17 és 11%-kal.

Utoljára az utolsó függvénybe ássuk bele magunkat:

  1. 76%-kal az aabb-aabb átfedést vizsgáló művelet nyert, ami nem meglepő.
  2. Második helyen viszont egy kivonás(!) végzett 17%-kal.
  3. A harmadik helyre pedig egy értékadás került.

Az advance függény után vessünk még egy futó pillantást a renderelésre:

Itt az aranyérmes a frustum cull lett 77%-kal, a többi idő a renderelésre fordítódik. A frustum cullból pedig 91% aabb aabb átfedés vizsgálatban telik el.

Valószínűleg sikerült megtalálni a sebességkritikus kódrészeket, amelyeken -ha lehet- érdemes tovább optimalizálni.

 

Szólj hozzá!

A bejegyzés trackback címe:

https://sakura7.blog.hu/api/trackback/id/tr351168025

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása