Salut,
pour mémorisé des points classé par coordonnées XYZ, je testais vite fait l'utilisation des vector multidimensionnel et array multidimensionnel
Au final je suis arrivé à des délais d’exécution quasiment similaire, le plus souvent à l'avantage du vector mais de peu
C'est peut être normal vu que les deux contiennent uniquement des valeurs boolean?
mais au cas je me demandais si j'avais fait une ou des erreurs quelque part vu que le Vector est sensé être plus rapide que ça par rapport au Array non ?
Délai populate multivector: 0.031 seconds
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 private var multiVector:Vector.<Vector.<Vector.<Boolean>>> = new Vector.<Vector.<Vector.<Boolean>>>(128,true); private var multiArray:Array = new Array(); private var accessNumb:Number = 2000000; private function populateMultiArray() { var nX:Number = 64; var nY:Number = 0; var nZ:Number = 0; var maxSize:Number = 128; while (nY < maxSize) { multiArray[nY] = new Array(); nZ = 0; while (nZ < maxSize) { multiArray[nY][nZ] = new Array(); nZ++; } nY++; } //insertion valeurs de 65x65x65 à 128x128x128 nZ = 64; nY = 64; while (nY < maxSize) { nZ = 64; while (nZ < maxSize) { nX = 64; while (nX < maxSize) { multiArray[nY][nZ][nX] = true; nX++; } nZ++; } nY++; } } private function accessMultiArray() { var i:Number = 0; while (i < accessNumb) { if (multiArray[rand(0,127)][rand(0,127)][rand(0,127)]) { //true mais osef } i++; } } private function populateMultiVec() { var nX:Number = 0; var nY:Number = 0; var nZ:Number = 0; var maxSize:Number = 128; while (nY < maxSize) { multiVector[nY] = new Vector.<Vector.<Boolean>>(maxSize,true); nZ = 0; while (nZ < maxSize) { multiVector[nY][nZ] = new Vector.<Boolean>(maxSize,true); nZ++; } nY++; } //insertion valeurs de 65x65x65 à 128x128x128 nX = nY = nZ = 64; while (nY < maxSize) { nZ = 64; while (nZ < maxSize) { nX = 64; while (nX < maxSize) { multiVector[nY][nZ][nX] = true; nX++; } nZ++; } nY++; } } private function accessMultiVec() { var i:Number = 0; while (i < accessNumb) { if (multiVector[rand(0,127)][rand(0,127)][rand(0,127)]) { //true mais osef } i++; } }
Délai populate multiarray: 0.046 seconds
Délai d'accès multivector: 1.688 seconds
Délai d'accès multiarray: 1.703 seconds
A moins que ce soit la façon de calculer le délai d'execution qui n'est pas fiable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //Start init = new Date(); //...fonction //End done = new Date(); //Display trace("text: " + ( ( done.getTime()-init.getTime() ) / 1000 ) + " seconds");
D'ailleurs au passage, il y a moyen de savoir combien de mémoire ça bouffe précisément? Dans l'espoir que le Vector soit plus light![]()
Partager