Skip to content

Commit b6dac79

Browse files
committed
extend scattergl
1 parent 33620b7 commit b6dac79

File tree

1 file changed

+94
-25
lines changed

1 file changed

+94
-25
lines changed

test/jasmine/performance_tests/scattergl_test.js

Lines changed: 94 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,50 +13,119 @@ const samples = Array.from({ length: nSamples }, (_, i) => i);
1313
const nTimes = samples.length - 1;
1414

1515
var 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

39101
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() {
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

Comments
 (0)