
Envoyé par
abidineb
tic toc fait l'affaire mais est ce que vraiment le temps CPU
A ma connaissance non. Enfin... pas exactement.
Je ne suis pas un spécialiste mais voici comment je comprends (théoriquement et très simplement) les choses : Le code MATLAB est transférer, via le système d'exploitation, au processeur qui exécute des opérations arithmétiques basiques. C'est ce qu'on appelle couramment un processus.
Le temps processeur (ou CPU) est donc la somme des intervalles de temps de chaque calcul élémentaire d'un processus. Si le processeur met 1ms pour exécuter une opération élémentaire et que le code lui demande de faire 1000 opérations, le temps CPU pour ce processus sera de 1s.
Les systèmes d'exploitation actuels sont multitâches, ce qui signifie qu'ils sont capables de gérer "en même temps" plusieurs processus de manière plus ou moins indépendante. Mais au final le processeur ne peut lui exécuter concrètement qu'une seule tâche à la fois.
Le temps CPU n'est donc pas exactement le temps d'exécution d'un programme. Si, par exemple, ce processus n'est pas prioritaire par rapport à d'autres processus plus importants, le temps CPU lui ne changera pas, par contre entre chaque calcul, il se peut fort bien que le CPU traite d'autres opérations pour d'autres processus. D'où une différence au final entre le temps d'exécution nécessaire pour finir le processus et le temps CPU toujours identique.
Tout ceci reste assez théorique et surtout très simpliste. Les cadences des processeurs sont beaucoup plus rapide que les système d'exploitation et on trouve maintenant plusieurs processeurs avec plusieurs cœurs sur les ordinateurs.
Maintenant, je ne pense pas que ton problème soit de mesurer le temps CPU.
Pour répondre exactement à ta question, il nous faudrait savoir ce que tu comptes faire avec le temps mesuré.
Ne cherches-tu pas plutôt à déterminer la complexité de ton algorithme =>
: Qu'est-ce que la complexité ?
Partager