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.
Le résultat est n'importe quoi!!
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()
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
Partager