Skip to content

Commit

Permalink
Perf improvement for ticks.source:'labels' (#6354)
Browse files Browse the repository at this point in the history
* Perf improvement for ticks.source:'labels'

* Address review comments

* Address review comments
  • Loading branch information
benmccann authored and etimberg committed Jul 18, 2019
1 parent cbace1c commit 28fdffb
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/scales/scale.time.js
Expand Up @@ -538,15 +538,13 @@ module.exports = Scale.extend({
var timestamps = [];
var datasets = [];
var labels = [];
var i, j, ilen, jlen, data, timestamp;
var i, j, ilen, jlen, data, timestamp, labelsAdded;
var dataLabels = me._getLabels();

// Convert labels to timestamps
for (i = 0, ilen = dataLabels.length; i < ilen; ++i) {
labels.push(parse(me, dataLabels[i]));
}

// Convert data to timestamps
for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {
if (chart.isDatasetVisible(i)) {
data = chart.data.datasets[i].data;
Expand All @@ -561,25 +559,24 @@ module.exports = Scale.extend({
datasets[i][j] = timestamp;
}
} else {
for (j = 0, jlen = labels.length; j < jlen; ++j) {
timestamps.push(labels[j]);
}
datasets[i] = labels.slice(0);
if (!labelsAdded) {
timestamps = timestamps.concat(labels);
labelsAdded = true;
}
}
} else {
datasets[i] = [];
}
}

if (labels.length) {
// Sort labels **after** data have been converted
labels = arrayUnique(labels).sort(sorter);
min = Math.min(min, labels[0]);
max = Math.max(max, labels[labels.length - 1]);
}

if (timestamps.length) {
timestamps = arrayUnique(timestamps).sort(sorter);
timestamps = ilen > 1 ? arrayUnique(timestamps).sort(sorter) : timestamps.sort(sorter);
min = Math.min(min, timestamps[0]);
max = Math.max(max, timestamps[timestamps.length - 1]);
}
Expand Down

0 comments on commit 28fdffb

Please sign in to comment.