I was able to generate random and pollute series based on your description and chart config. Indeed, the biggest performance bottleneck is huge amount of xAxis, if i switch to default xAxis setting, the chart loads significantly faster. Also, as you noticed correctly, formatter function in plotOptions.dataLabels
adds a bit to the load time, but it doesn't degrade performance that much.
Unfortunately, for now the boost module isn't compatible with gantt chart, but if you believe it would be useful, you can upvote and leave your feedback
on this feature request: https://highcharts.uservoice.com/forums ... antt-boost
. With decent amount of votes, it might get implemented in the future.
You could also consider asynchronous fetching of data within desired range, so you don't pollute chart with thousands of points when only a subset is visible to the user. See this thread here: viewtopic.php?t=49228&p=178834
What I would highly recommend instead of using 8 xAxis is to enable scrollablePlotArea
after the initial load of the chart. This way the xAxis and navigator stay fixed on top of the chart, and the user can scroll through whole plot area. You can still customize top xAxis with desired values, but the performance increase is worth considering in this approach.
Live demo: https://jsfiddle.net/BlackLabel/39qfm6vk/
https://api.highcharts.com/gantt/chart. ... lePlotArea
https://api.highcharts.com/class-refere ... art#update
Let me know if this works for you!