andrewrk / andrewrk/groovebasin
Diffing on subscription updates is fundamentally problematic
- Ngôn ngữ chính
- JavaScript
- Star
- 2k
- Fork
- 119
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Sorry to pile on, since this project seems to've gone by the wayside, but if you should ever pick it up again, thought I'd leave a little note here.
I noticed that after updating from the debian-packaged copy of groovebasin to the (almost) latest (4.3.0), responsiveness declined significantly when sending commands to the server. Profiling shows that large chunks of time are taken up in diffing the previous subscribed values against the current values, when the data set is large. When initially scanning a large library, the 'library' key gets updated constantly, causing these diffs, and thus locks up the event loop so the application can't respond.
I'm not entirely certain what the purpose of this approach was; perhaps to enable clients to reconnect and get updates they'd lost? Or to account for consumers that can't keep up? Anyway, either shortcutting this operation when it's not necessary, or simply passing the information about what changed all the way up the chain, would take care of it. I couldn't think of any simple fix just looking at the code without a bunch of context.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.