SWAT-engineering / SWAT-engineering/java-watch

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

Abierto
#48 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement
Lenguaje dominante
Java
Estrellas
1
Forks
0
Merge medio
14 h 40 min
PR fusionados (30 d)
1

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza leyendo MacWatchKey y el comportamiento existente del poller al recopilar eventos. Ejecuta los torture tests para entender el caso de alta tasa de eventos descrito en el issue y, después, mide si recopilar previamente los eventos disponibles lo mejora. Se considera terminado cuando se haya establecido el efecto de la optimización y cualquier cambio resultante se haya validado con esos tests.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
operating-systems, performance
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
28/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.