Bonjour ! Y aurait-il un moyen de mesurer le temps d'exécution d'une procédure ?

Je sais qu'on peut obtenir l'heure à la milliseconde près, mais étant donné les conditions dans lesquelles s'exécute une animation Flash, on ne peut pas lancer des tâches trop longues. Donc comment feriez-vous, si vous aviez besoin de savoir laquelle de deux procédures est la plus rapide ?

Voici un cas sur lequel je me suis posé la question.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
(* Flash-Pascal 2 v13.11.10 *)
 
program EnleveAccents1;
 
uses Flash8;
 
{$FRAME_WIDTH 320}
{$FRAME_HEIGHT 200}
{$BACKGROUND 0}
 
////////////////////////////////////////////////////////////////////////////////
const
  LARGEUR = 320;
  HAUTEUR = 200;
  VERSION = 'Compilateur FlashPascal 2 v13.11.10'#13;
 
var
  t: TextField;
  f: TextFormat;
  s: string;
////////////////////////////////////////////////////////////////////////////////
 
const
  AvecAccents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
  SansAccents = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn';
 
function EnleveAccents(aChaine: string): string;
var
  i, j: Integer;
begin
  Result := '';
  for i := 1 to Length(aChaine) do
  begin
    j := Pos(aChaine[i], AvecAccents);
    if j > 0 then
      Result := Result + SansAccents[j]
    else
      Result := Result + aChaine[i];
  end;
end;
 
begin
////////////////////////////////////////////////////////////////////////////////
  f := TextFormat.Create('Tahoma', 16);
  f.color := clWhite;
  f.leftMargin := 5;
  t := TextField.Create(_root, 't', 0, 0, 0, LARGEUR, HAUTEUR);
  t.SetNewTextFormat(f);
////////////////////////////////////////////////////////////////////////////////
 
  s := EnleveAccents("aàeéè");
 
////////////////////////////////////////////////////////////////////////////////
  t.text := VERSION + s;
  f.size := 12;
  f.color := clLime;
  t.SetTextFormat(0, Length(VERSION)-1, f);
////////////////////////////////////////////////////////////////////////////////
end.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
(* Flash-Pascal 2 v13.11.10 *)
 
program EnleveAccents2;
 
uses Flash8;
 
{$FRAME_WIDTH 320}
{$FRAME_HEIGHT 200}
{$BACKGROUND 0}
 
////////////////////////////////////////////////////////////////////////////////
const
  LARGEUR = 320;
  HAUTEUR = 200;
  VERSION = 'Compilateur FlashPascal 2 v13.11.10'#13;
 
var
  t: TextField;
  f: TextFormat;
  s: string;
////////////////////////////////////////////////////////////////////////////////
 
const
  AvecAccents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
  SansAccents = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn';
 
function EnleveAccents(aChaine: string): string;
var
  i, j: Integer;
begin
  Result := aChaine;
  for i := 1 to Length(aChaine) do
  begin
    j := Pos(aChaine[i], AvecAccents);
    if j > 0 then
      Result[i] := SansAccents[j];
  end;
end;
 
begin
////////////////////////////////////////////////////////////////////////////////
  f := TextFormat.Create('Tahoma', 16);
  f.color := clWhite;
  f.leftMargin := 5;
  t := TextField.Create(_root, 't', 0, 0, 0, LARGEUR, HAUTEUR);
  t.SetNewTextFormat(f);
////////////////////////////////////////////////////////////////////////////////
 
  s := EnleveAccents("aàeéè");
 
////////////////////////////////////////////////////////////////////////////////
  t.text := VERSION + s;
  f.size := 12;
  f.color := clLime;
  t.SetTextFormat(0, Length(VERSION)-1, f);
////////////////////////////////////////////////////////////////////////////////
end.