Next: Débogueur, Previous: Espace de travail, Up: Outils du développeur [Index]
Lors de l’exécution d’un code source complexe, exécuter celui-ci par l’intermédiaire du Profileur aide à trouver les portions de code consommatrice en temps de calcul. Pour ce faire, dans le menu contextuel de l’espace de travail exécuter le code en invoquant Profile it. Le code source est exécuté, le canevas Dr.Geo affiché et en plus la fenêtre du profileur informe l’utilisateur sur le temps d’exécution du code et des méthodes invoquées. C’est un outil remarquable pour naviguer dans l’arbre d’exécution du code et afficher les méthodes consommatrice en temps machine.
Testé avec la code du début de section, le profileur montre que Dr.Geo prend plus de temps à construire la fenêtre que la figure :
86.3% {109ms} UndefinedObject>>DoIt 71.0% {89ms} DrGeoSketch class(Behavior)>>new 6.5% {8ms} DrGWrappedPoint(DrGWrappedItem)>>hide 5.6% {7ms} DrGeoSketch>>point: 1.6% {2ms} DrGeoSketch>>polygon: 1.6% {2ms} primitives
En revanche sur une figure plus complexe, récursive par exemple, le profileur montre que le code consomme davantage de temps lors de la construction elle-même.
Copier-coller dans un espace de travail ce code qui construit la courbe de Sierpinski :
| canvas dragon | canvas := DrGeoSketch new. dragon := [ ]. dragon := [ :a :b :k | | c m n | k > 0 ifTrue: [ c := canvas altIntersectionOf: (canvas circleCenter: a to: b) hide and: (canvas circleCenter: b to: a) hide. c hide. m := (canvas middleOf: a and: c) hide. n := (canvas middleOf: b and: c) hide. dragon value: m value: a value: k - 1. dragon value: m value: n value: k - 1. dragon value: b value: n value: k - 1]. k = 0 ifTrue: [ canvas segment: a to: b ]. ]. canvas text: 'Sierpinski Dragon' at: 0@0. dragon value: (canvas point: -4@1.5) value: (canvas point: 4@1.5) value: 5
Puis le sélectionner afin de l’exécuter avec le profileur. Davantage
de temps est utilisé pour la construction des côtés de la courbe –
méthode segment:to:
– mais aussi d’autres éléments non
visibles comme des intersections entre lignes.
Next: Débogueur, Previous: Espace de travail, Up: Outils du développeur [Index]