Event loop scheduling improvement
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, swift, wasm
- Área
- performance, web-dev
Línea de trabajo
Comienza con el bucle del executor en Sources/JavaScriptEventLoop/JobQueue.swift, especialmente con la sección enlazada, y sigue cómo se ejecutan los trabajos de Swift encolados antes de que el control vuelva al bucle de eventos del navegador. Define y evalúa un enfoque de scheduling que ceda después de una cantidad acotada de tiempo del executor, demostrando la finalización mediante el hecho de que el trabajo pendiente de mayor prioridad ya no esté bloqueado por trabajos de baja prioridad y midiendo el impacto en el rendimiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Motivation
Think the following situation:
- The browser event loop has a pending event that fires an event listener that schedules high-priority work to JSKit's executor.
- But the current JSKit's executor loop does not yield its control to JS event loop until all enqueued works are done
- Even if some of them are low-priority
It resulted in the higher priority works planned to be enqueued to JSKit's executor are blocked by lower priority works that are already enqueued even though browser engine knows about the pending event.
Outcome
- Performance gain
Potential solution
Although yielding control to JS engine for every Swift job is not a realistic approach due to high overheads, but it's still considerable to yield control when certain time is spent for the current JSKit's executor loop.
- Lenguaje dominante
- Swift
- Estrellas
- 986
- Forks
- 76
- Merge medio
- 21 h 11 min
- PR fusionados (30 d)
- 4
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swiftwasm/JavaScriptKit
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 asignado ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
swiftwasm/JavaScriptKit#781 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 asignado ·
Todos los issues de swiftwasm/JavaScriptKit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
manaflow-ai/cmux#13763 ·
-
type: feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
googleapis/google-cloud-swift#1036 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
wultra/mtoken-sdk-ios#253 ·
-
The correction-threshold rationale says 17 restraint cases collide; the current corpus has 16 Abiertoarea:dictation documentation P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
uttrflow/uttrflow-swift#1180 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100