Message #6625
Sujet: Frame Rate qui descend de 60 à 14 !
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 04-08-2009 17:36:19 | Hawk |
Bonjour à tous.
J'ai un problème qui me bloque énormément depuis une semaine. Je travail sur un moteur de jeu 3D depuis quelques mois, qui tournait assez bien il y a encore une semaine, à 60FPS (valeur que j'ai fixée) Sans que je comprenne pourquoi, du jour au lendemain, je me retrouve à un FPS de 14 !! Du coup, ça rame énormément. Pour comprendre ce phénomène, j'ai lancé gprof sous linux sur mon binaire, pour comprendre d'où venait le problème. Et voici un extrait du résultat : Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 25.00 0.01 0.01 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int) 25.00 0.02 0.01 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool) 25.00 0.03 0.01 irr::video::SColor::getRed() const 25.00 0.04 0.01 irr::video::SColor::getAlpha() const Un peu plus bas, dans le call graph : granularity: each sample hit covers 4 byte(s) for 25.00% of 0.04 seconds index % time self children called name <spontaneous> [1] 25.0 0.01 0.00 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int) [1]
<spontaneous> [2] 25.0 0.01 0.00 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool) [2]
<spontaneous> [3] 25.0 0.01 0.00 irr::video::SColor::getRed() const [3]
<spontaneous> [4] 25.0 0.01 0.00 irr::video::SColor::getAlpha() const [4] Je n'arrive pas à comprendre d'où vient ce phénomène. Je suis sous Ubuntu 9.04, je compile avec gcc, j'utilise Irrlicht 1.5. Est-ce que quelqu'un aurait une idée pour m'éclairer ? D'avance merci. EDIT : J'ai relancer mon binaire, et refait gprof dessus, je n'obtiens pas les même résultats ! Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 50.00 0.01 0.01 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*) 25.00 0.01 0.01 irr::video::SMaterialLayer::SMaterialLayer() 25.00 0.02 0.01 irr::core::CMatrix4<float>::operator()(int, int) const granularity: each sample hit covers 4 byte(s) for 50.00% of 0.02 seconds index % time self children called name <spontaneous> [1] 50.0 0.01 0.00 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*) [1]
<spontaneous> [2] 25.0 0.01 0.00 irr::video::SMaterialLayer::SMaterialLayer() [2]
<spontaneous> [3] 25.0 0.01 0.00 irr::core::CMatrix4<float>::operator()(int, int) const [3] |
| Création du message | 04-08-2009 17:23:44 | Hawk |
Bonjour à tous.
J'ai un problème qui me bloque énormément depuis une semaine. Je travail sur un moteur de jeu 3D depuis quelques mois, qui tournait assez bien il y a encore une semaine, à 60FPS (valeur que j'ai fixée) Sans que je comprenne pourquoi, du jour au lendemain, je me retrouve à un FPS de 14 !! Du coup, ça rame énormément. Pour comprendre ce phénomène, j'ai lancé gprof sous linux sur mon binaire, pour comprendre d'où venait le problème. Et voici un extrait du résultat : Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 25.00 0.01 0.01 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int) 25.00 0.02 0.01 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool) 25.00 0.03 0.01 irr::video::SColor::getRed() const 25.00 0.04 0.01 irr::video::SColor::getAlpha() const Un peu plus bas, dans le call graph : granularity: each sample hit covers 4 byte(s) for 25.00% of 0.04 seconds index % time self children called name <spontaneous> [1] 25.0 0.01 0.00 irr::core::array<unsigned char, irr::core::irrAllocator<unsigned char> >::operator[](unsigned int) [1]
<spontaneous> [2] 25.0 0.01 0.00 irr::video::CColorConverter::convert24BitTo24Bit(unsigned char const*, unsigned char*, int, int, int, bool, bool) [2]
<spontaneous> [3] 25.0 0.01 0.00 irr::video::SColor::getRed() const [3]
<spontaneous> [4] 25.0 0.01 0.00 irr::video::SColor::getAlpha() const [4] Je n'arrive pas à comprendre d'où vient ce phénomène. Je suis sous Ubuntu 9.04, je compile avec gcc, j'utilise Irrlicht 1.5. Est-ce que quelqu'un aurait une idée pour m'éclairer ? D'avance merci. EDIT : J'ai relancer mon binaire, et refait gprof dessus, je n'obtiens pas les même résultats ! Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 50.00 0.01 0.01 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*) 25.00 0.01 0.01 irr::video::SMaterialLayer::SMaterialLayer() 25.00 0.02 0.01 irr::core::CMatrix4<float>::operator()(int, int) const granularity: each sample hit covers 4 byte(s) for 50.00% of 0.02 seconds index % time self children called name <spontaneous> [1] 50.0 0.01 0.00 irr::video::CNullDriver::addAndDropMaterialRenderer(irr::video::IMaterialRenderer*) [1]
<spontaneous> [2] 25.0 0.01 0.00 irr::video::SMaterialLayer::SMaterialLayer() [2]
<spontaneous> [3] 25.0 0.01 0.00 irr::core::CMatrix4<float>::operator()(int, int) const [3] |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 136 invités en ligne membre en ligne: - RSS Feed |