16 votes

Pourquoi mon programme s'exécute-t-il beaucoup plus rapidement lorsque j'active le profilage ?

J'ai un programme qui s'exécute assez lentement (il prend environ 20 secondes, même à la sortie de la version). Pour le réparer, j'ai essayé d'utiliser le profileur intégré de Visual Studio. Cependant, lorsque j'exécute le programme avec le profilage activé, il se termine en moins d'une seconde. Il est donc très difficile de trouver un goulot d'étranglement. Je posterais bien le code mais il est long. Y a-t-il des raisons évidentes ou moins évidentes pour lesquelles cela se produit ?

EDIT : Ok, j'ai réduit le problème à un tas d'appels free(). Quand je les commente, le programme s'exécute dans le même temps qu'avec le profilage activé. Mais maintenant j'ai une fuite de mémoire :-/

0voto

Terry Mahaffey Points 7368

Utilisez un profileur d'échantillon non intrusif au lieu d'un profileur instrumenté intrusif.

0voto

Boolean Points 3127

Cela pourrait être dû à quelques optimisations qui ne sont pas effectuées par le compilateur lorsque vous l'exécutez en mode profilage. Je vous suggère donc de vérifier les paramètres passés et de consulter la documentation du compilateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X