Pertains to the beginning of more "serious" work toward #109.
A bunch of fancy stuff added to reduce latency on drawing larger data sets as well as some general UX changes to aid with it.
add a BarItems downsampling to FastAppendCurve when the uppx (units-per-pixel) on screen is > 2
the curve generated here is an "outline" or "tracing" of the HL parts of each bar such that the "peak" are shown as a line when zoomed out far enough to not be able to see a single OHLC bar
this changeset was moved into #304.
~factor the "graphics draw cycle" steps into a sync function that can be triggered (remotely) to update on certain types of events~
~for example when an fsp running in a subactor makes an update but the market is not open - it needs to tell the chart app to update graphics~
factor out the "peak" downsampling code from pyqtgraph's PlotDataItem and stick in a new piker.ui._compression mod
display loop now only updates real-time on quotes when not in "big data" viewing mode
don't be updating line curves rt when we're zoomed out @ uppx > 4 except when the sample step updates (i.e. we still show new datums appended just not on every change to the last value)
don't shift the curves if the last datum isn't in view (i.e. the user is viewing history) or we're zoomed out uppx > 4
This is all obviously very nascent and we're going to introduce a bunch of fancy downsampling algo stuff to the tracer curves, but it's a start and needs some serious scrutiny and testing ππΌ
UPDATE
a ton more was added to get the m4 downsampling algo working but the stip is that this PR now further requries the history from #294 as well as a cusom patch to the profiler on our pyqtgraph fork (links coming soon).
ToDo:
[x] get a PR up for the pg.debug.Profiler and hopefully we don't have to fork it into the project (yet again π)
Pertains to the beginning of more "serious" work toward #109.
A bunch of fancy stuff added to reduce latency on drawing larger data sets as well as some general UX changes to aid with it.
BarItems
downsampling toFastAppendCurve
when the uppx (units-per-pixel) on screen is > 2pyqtgraph
'sPlotDataItem
and stick in a newpiker.ui._compression
modThis is all obviously very nascent and we're going to introduce a bunch of fancy downsampling algo stuff to the tracer curves, but it's a start and needs some serious scrutiny and testing ππΌ
UPDATE
a ton more was added to get the m4 downsampling algo working but the stip is that this PR now further requries the history from #294 as well as a cusom patch to the profiler on our
pyqtgraph
fork (links coming soon).ToDo:
pg.debug.Profiler
and hopefully we don't have to fork it into the project (yet again π)