SWAT-engineering / SWAT-engineering/java-watch
Enqueue collections of events instead of individual events in `MacWatchKey`?
オープン
まだ誰も着手していません。
enhancement
- 主要言語
- Java
- スター
- 1
- フォーク
- 0
- 平均マージ
- 14時間 40分
- マージ済み PR(30日)
- 1
説明
Events are enqueued to the list of pending events individually in MacWatchKey. It might be faster to, before enqueueing, collect all events that are available at that point (but not yet enqueued) and enqueue the collection. Note: This is an optimization of which the need/effectiveness currently is unclear.
Further background:
- Original comment
- In a previous version of the library, the poller used to submit a separate job to the thread pool for each incoming event. This didn't work well in situations with many events (e.g., in the torture tests). Currently, instead, the poller collects multiple events in each job. This feature of the poller might be strengthened by using "pre-collection" as suggested in this issue (or it might not; that's to be found out).
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず MacWatchKey と poller の既存のイベント収集動作を読みます。issue で説明されている高イベントレートのケースを理解するために torture tests を実行し、その後、利用可能なイベントを事前に収集することで改善するかどうかを測定します。最適化の効果が確認され、その結果生じた変更がこれらのテストに対して検証されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- operating-systems, performance
- issue の種類
- リファクタリング
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 28/100