Next: , Previous: , Up: Outils du développeur   [Index]


9.2 Profileur

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 :

SierpinskiCurve

Figure 9.4: Courbe interactive 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.

fig54

Figure 9.5: Le profileur Dr.Geo à l’issue de la construction de la courbe de Sierpinski


Next: , Previous: , Up: Outils du développeur   [Index]