Historique des modifications - Message

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]

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
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