3 votes

Pourquoi le temps d'exécution de matlab diffère quand on appuie sur F9

J'ai une situation assez simple où le temps d'exécution de matlab diffère selon la façon dont j'exécute le code :

tic
pause(1)
toc

Si j'appuie sur Ctrl + Enter sur un script, j'obtiens quelque chose comme :

Elapsed time is 1.000241 seconds.

Si je sélectionne le code et appuie sur F9 j'obtiens quelque chose comme :

Elapsed time is 1.025203 seconds

Je constate une différence de temps de 25ms qui est reproductible.

3voto

A. Fasih Points 53

Si vous copiez et collez votre code dans la "fenêtre de commande" de Matlab, vous verrez une grande différence par rapport à l'exécution de votre code en tant que fichier m.

sur mon ordinateur (Intel i7, 16GB RAM), mon résultat varie de +/- 5ms.

Elapsed time is 1.002843 seconds.
Elapsed time is 1.008236 seconds.
Elapsed time is 1.003001 seconds.

mais lorsque j'exécute le code dans un fichier m, j'obtiens un résultat beaucoup plus précis. +/- 0.01ms

Elapsed time is 1.000032 seconds.
Elapsed time is 1.000041 seconds.
Elapsed time is 1.000021 seconds.

et la raison possible est : Si vous exécutez le code en tant que fichier m, matlab essaie d'analyser le code à l'avance et votre code sera exécuté plus rapidement et il n'y a pas de phase intermédiaire d'analyse pour chaque ligne individuelle.

2voto

matlabgui Points 4861

I suspect cela est dû au fait que le sections de code qui sont exécutés lorsque vous sélectionnez Ctrl + Enter sont déjà stockés en mémoire et sont donc "prêts à fonctionner", alors que lorsque vous appuyez sur F9 Matlab doit lire ce qui est sélectionné dans l'éditeur après que vous ayez appuyé sur F9 .

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