D3 often render using SVF, which is retained mode graphic model
easy to use but performance is limited.
D3 v4 also have canvas to render charts, which is immediate mode, you can render 10k data points while maintaining smooth 60 pfs interaction .
Make use of the GPU:
WebGL provides a JS API