Event loop scheduling improvement
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, swift, wasm
- Domaine
- performance, web-dev
Piste de recherche
Commencez par la boucle de l’exécuteur dans Sources/JavaScriptEventLoop/JobQueue.swift, en particulier la section liée, et suivez l’exécution des tâches Swift mises en file avant que le contrôle ne retourne à la boucle d’événements du navigateur. Définissez et évaluez une approche de scheduling qui cède après une durée bornée d’exécution de l’exécuteur, en montrant que le travail en attente de priorité supérieure n’est plus bloqué par les tâches de priorité inférieure et en mesurant l’impact sur les performances.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Swift
- Étoiles
- 986
- Forks
- 76
- Merge moyen
- 21 h 11 min
- PR mergées (30 j)
- 4
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de swiftwasm/JavaScriptKit
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 personne assignée ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
swiftwasm/JavaScriptKit#781 · 3 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 personne assignée ·
Toutes les issues de swiftwasm/JavaScriptKit
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
maxgoedjen/secretive#840 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
manaflow-ai/cmux#13763 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
openwallet-foundation/multipaz#2028 ·