@@ -13,50 +13,119 @@ const samples = Array.from({ length: nSamples }, (_, i) => i);
1313const nTimes = samples . length - 1 ;
1414
1515var tests = [ {
16- n : 1000
16+ n : 1000 , mode : 'markers' , nTraces : 1
1717} , {
18- n : 2000
18+ n : 2000 , mode : 'markers' , nTraces : 1
1919} , {
20- n : 4000
20+ n : 4000 , mode : 'markers' , nTraces : 1
2121} , {
22- n : 8000
22+ n : 8000 , mode : 'markers' , nTraces : 1
2323} , {
24- n : 16000
24+ n : 16000 , mode : 'markers' , nTraces : 1
2525} , {
26- n : 32000
26+ n : 32000 , mode : 'markers' , nTraces : 1
2727} , {
28- n : 64000
28+ n : 64000 , mode : 'markers' , nTraces : 1
2929} , {
30- n : 128000
30+ n : 1000 , mode : 'lines' , nTraces : 1
3131} , {
32- n : 256000
32+ n : 2000 , mode : 'lines' , nTraces : 1
3333} , {
34- n : 512000
34+ n : 4000 , mode : 'lines' , nTraces : 1
3535} , {
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
3799} ] ;
38100
39101tests . 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 ( ) {
41103 'use strict' ;
42104
43- var y = Float64Array . from ( { length : spec . n } , ( _ , i ) => i * Math . cos ( Math . sqrt ( i ) ) ) ;
105+ var startTime , endTime ;
44106
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+ } ) ;
54118 }
55- } ;
56119
57- var startTime , endTime ;
120+ var mock = {
121+ data : data ,
122+ layout : {
123+ showlegend : false ,
124+ width : 900 ,
125+ height : 400
126+ }
127+ } ;
58128
59- beforeEach ( function ( done ) {
60129 startTime = performance . now ( ) ;
61130
62131 // Wait for actual rendering to complete
0 commit comments