@@ -13,50 +13,119 @@ const samples = Array.from({ length: nSamples }, (_, i) => i);
13
13
const nTimes = samples . length - 1 ;
14
14
15
15
var tests = [ {
16
- n : 1000
16
+ n : 1000 , mode : 'markers' , nTraces : 1
17
17
} , {
18
- n : 2000
18
+ n : 2000 , mode : 'markers' , nTraces : 1
19
19
} , {
20
- n : 4000
20
+ n : 4000 , mode : 'markers' , nTraces : 1
21
21
} , {
22
- n : 8000
22
+ n : 8000 , mode : 'markers' , nTraces : 1
23
23
} , {
24
- n : 16000
24
+ n : 16000 , mode : 'markers' , nTraces : 1
25
25
} , {
26
- n : 32000
26
+ n : 32000 , mode : 'markers' , nTraces : 1
27
27
} , {
28
- n : 64000
28
+ n : 64000 , mode : 'markers' , nTraces : 1
29
29
} , {
30
- n : 128000
30
+ n : 1000 , mode : 'lines' , nTraces : 1
31
31
} , {
32
- n : 256000
32
+ n : 2000 , mode : 'lines' , nTraces : 1
33
33
} , {
34
- n : 512000
34
+ n : 4000 , mode : 'lines' , nTraces : 1
35
35
} , {
36
- n : 1024000
36
+ n : 8000 , mode : 'lines' , nTraces : 1
37
+ } , {
38
+ n : 16000 , mode : 'lines' , nTraces : 1
39
+ } , {
40
+ n : 32000 , mode : 'lines' , nTraces : 1
41
+ } , {
42
+ n : 64000 , mode : 'lines' , nTraces : 1
43
+ } , {
44
+ n : 1000 , mode : 'markers' , nTraces : 10
45
+ } , {
46
+ n : 2000 , mode : 'markers' , nTraces : 10
47
+ } , {
48
+ n : 4000 , mode : 'markers' , nTraces : 10
49
+ } , {
50
+ n : 8000 , mode : 'markers' , nTraces : 10
51
+ } , {
52
+ n : 16000 , mode : 'markers' , nTraces : 10
53
+ } , {
54
+ n : 32000 , mode : 'markers' , nTraces : 10
55
+ } , {
56
+ n : 64000 , mode : 'markers' , nTraces : 10
57
+ } , {
58
+ n : 1000 , mode : 'lines' , nTraces : 10
59
+ } , {
60
+ n : 2000 , mode : 'lines' , nTraces : 10
61
+ } , {
62
+ n : 4000 , mode : 'lines' , nTraces : 10
63
+ } , {
64
+ n : 8000 , mode : 'lines' , nTraces : 10
65
+ } , {
66
+ n : 16000 , mode : 'lines' , nTraces : 10
67
+ } , {
68
+ n : 32000 , mode : 'lines' , nTraces : 10
69
+ } , {
70
+ n : 64000 , mode : 'lines' , nTraces : 10
71
+ } , {
72
+ n : 1000 , mode : 'markers' , nTraces : 100
73
+ } , {
74
+ n : 2000 , mode : 'markers' , nTraces : 100
75
+ } , {
76
+ n : 4000 , mode : 'markers' , nTraces : 100
77
+ } , {
78
+ n : 8000 , mode : 'markers' , nTraces : 100
79
+ } , {
80
+ n : 16000 , mode : 'markers' , nTraces : 100
81
+ } , {
82
+ n : 32000 , mode : 'markers' , nTraces : 100
83
+ } , {
84
+ n : 64000 , mode : 'markers' , nTraces : 100
85
+ } , {
86
+ n : 1000 , mode : 'lines' , nTraces : 100
87
+ } , {
88
+ n : 2000 , mode : 'lines' , nTraces : 100
89
+ } , {
90
+ n : 4000 , mode : 'lines' , nTraces : 100
91
+ } , {
92
+ n : 8000 , mode : 'lines' , nTraces : 100
93
+ } , {
94
+ n : 16000 , mode : 'lines' , nTraces : 100
95
+ } , {
96
+ n : 32000 , mode : 'lines' , nTraces : 100
97
+ } , {
98
+ n : 64000 , mode : 'lines' , nTraces : 100
37
99
} ] ;
38
100
39
101
tests . forEach ( function ( spec , index ) {
40
- describe ( 'Performance test scattergl | size:' + spec . n , function ( ) {
102
+ describe ( 'Performance test ' + spec . nTraces + ' scattergl | size:' + spec . n + ' | mode: ' + spec . mode , function ( ) {
41
103
'use strict' ;
42
104
43
- var y = Float64Array . from ( { length : spec . n } , ( _ , i ) => i * Math . cos ( Math . sqrt ( i ) ) ) ;
105
+ var startTime , endTime ;
44
106
45
- var mock = {
46
- data : [ {
47
- type : 'scattergl' ,
48
- mode : 'markers' ,
49
- y : y
50
- } ] ,
51
- layout : {
52
- width : 900 ,
53
- height : 400
107
+ beforeEach ( function ( done ) {
108
+ var y = Array . from ( { length : spec . n } , ( _ , i ) => i * Math . cos ( Math . sqrt ( i ) ) ) ;
109
+ var data = [ ] ;
110
+ var nPerTrace = Math . floor ( spec . n / spec . nTraces ) ;
111
+ for ( var k = 0 ; k < spec . nTraces ; k ++ ) {
112
+ data . push ( {
113
+ type : 'scattergl' ,
114
+ mode : spec . mode ,
115
+ y : y . slice ( k * nPerTrace , ( k + 1 ) * nPerTrace ) ,
116
+ x : Array . from ( { length : nPerTrace } , ( _ , i ) => i + k * nPerTrace )
117
+ } ) ;
54
118
}
55
- } ;
56
119
57
- var startTime , endTime ;
120
+ var mock = {
121
+ data : data ,
122
+ layout : {
123
+ showlegend : false ,
124
+ width : 900 ,
125
+ height : 400
126
+ }
127
+ } ;
58
128
59
- beforeEach ( function ( done ) {
60
129
startTime = performance . now ( ) ;
61
130
62
131
// Wait for actual rendering to complete
0 commit comments