Bonjour.
Problème récurrent : je veux comparer la rapidité de deux routines, j'utilise Stopwatch et le code qui suit avec mes deux routines à tester. C'est pour voir si les calculs avec des Integers, des longs, des short est plus ou moins rapide (Les articles sur le web datent un peu) . Ici j'ai la comparaison d'addition d'un integer ou d' un Short.
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
 
        Dim b As Integer
        Dim c As Integer
        Dim i As Integer
        Dim s As Short
        Dim sw As New Stopwatch
        sw.Start()
        ' Ici  routine 1
        For c = 1 To 30000
            i = 1
            For b = 0 To 250
                i = i + 1
            Next
        Next
        sw.Stop()
        Label1.Text = sw.ElapsedTicks.ToString()
        Dim sw1 = New Stopwatch
        sw1.Start()
        ' Ici  routine 2
        For c = 1 To 30000
            s = 1
            For b = 0 To 250
                s = s + 1
            Next
        Next
        sw1.Stop()
        Label2.Text = sw1.ElapsedTicks.ToString()
Le résultat est n'importe quoi!!
Même si les 2 routines sont identiques et utilisent par exemple toutes les 2 des integers. La première routine est systématiquement plus longue.
J'ai pris soin d'être en mode Release, de faire tourner le code plusieurs fois (la première fois cela 'devrait être plus longue' puisqu'il y a compilation JIT.
J'ai bien compris la cause de cela, mais comment y remédier?
Il est dit sur un forum de mesurer les processus, comment?
Je voulais aussi utiliser un thread avec une priorité importante mais je ne sais pas récupérer les temps à la fin de la routine.
Y a t-il un moyen sur de mesurer? Le Framework fournit il d'autres méthodes?
Merci de votre aide