Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faster y-range sorting #325

Open
Tracked by #339 ...
goodboy opened this issue Jun 4, 2022 · 1 comment
Open
Tracked by #339 ...

Faster y-range sorting #325

goodboy opened this issue Jun 4, 2022 · 1 comment
Labels
data-layer real-time and historical data processing and storage graphics (charting related) geometry chops perf efficiency and latency optimization

Comments

@goodboy
Copy link
Contributor

goodboy commented Jun 4, 2022

After #302 lands there are 2 main sources of latency left in chart interaction:

  • redraw latency (a much larger task to deal with that will require
    further extensions to our Rendering sub-systems) that contains:

    • maybe a downsampling of data via m4
    • a delete and redraw of a QPainterPath for the data in view
  • max() / min() sorting of the y-data in-view

In order to see this latency in action pass a --profile 10 to your piker chart command to see something like:

 > Entering `ChartView._set_yrange()`: `dolla_vlm`
    callback ._maxmin(): (0, 22800345.0): 24.8241 ms
    set limits: (-1368020.7, 24168365.7): 0.1694 ms
  < Exiting `ChartView._set_yrange()`: `dolla_vlm`, total time: 24.9964 ms
    > Entering `<piker.ui._chart.ChartPlotWidget object at 0x7f8b66fcae60>.maxmin(name=trade_rate)`: `volume`
      volume got bars range: 0.0380 ms
      yrange mxmn: (0, 1299940) -> (0.0, 0.0): 16.0576 ms
    < Exiting `<piker.ui._chart.ChartPlotWidget object at 0x7f8b66fcae60>.maxmin(name=trade_rate)`: `volume`, total time: 16.1166 ms
    > Entering `<piker.ui._chart.ChartPlotWidget object at 0x7f8b66fcae60>.maxmin(name=dark_trade_rate)`: `volume`
      volume got bars range: 0.1704 ms
      yrange mxmn: (0, 1299940) -> (0.0, 0.0): 12.8711 ms
    < Exiting `<piker.ui._chart.ChartPlotWidget object at 0x7f8b66fcae60>.maxmin(name=dark_trade_rate)`: `volume`, total time: 13.0730 ms
  > Entering `ChartView._set_yrange()`: `trade_rates`
    callback ._maxmin(): (0, 0): 29.5531 ms
    set limits: (0.0, 0.0): 0.2536 ms
  < Exiting `ChartView._set_yrange()`: `trade_rates`, total time: 29.8102 ms

Strategy to solve this: demire?

@goodboy goodboy added data-layer real-time and historical data processing and storage graphics (charting related) geometry chops perf efficiency and latency optimization labels Jun 4, 2022
@goodboy goodboy mentioned this issue Jun 4, 2022
7 tasks
@goodboy goodboy mentioned this issue Jun 26, 2022
5 tasks
@goodboy
Copy link
Contributor Author

goodboy commented Oct 14, 2022

this should help drive goodboy/tractor#175 as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data-layer real-time and historical data processing and storage graphics (charting related) geometry chops perf efficiency and latency optimization
Projects
None yet
Development

No branches or pull requests

1 participant