SWAT-engineering / SWAT-engineering/java-watch

Enqueue collections of events instead of individual events in `MacWatchKey`?

オープン
#48 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

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).

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず MacWatchKey と poller の既存のイベント収集動作を読みます。issue で説明されている高イベントレートのケースを理解するために torture tests を実行し、その後、利用可能なイベントを事前に収集することで改善するかどうかを測定します。最適化の効果が確認され、その結果生じた変更がこれらのテストに対して検証されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
operating-systems, performance
issue の種類
リファクタリング
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
28/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。