Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Event loop scheduling improvement

Offen
#282 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
javascript, swift, wasm
Bereich
performance, web-dev

Rechercherichtung

Beginnen Sie mit der Executor-Schleife in Sources/JavaScriptEventLoop/JobQueue.swift, insbesondere mit dem verlinkten Abschnitt, und verfolgen Sie, wie eingereihte Swift-Jobs ausgeführt werden, bevor die Kontrolle an die Browser-Ereignisschleife zurückkehrt. Definieren und bewerten Sie einen Scheduling-Ansatz, der nach einer begrenzten Zeit im Executor die Ausführung abgibt. Der Abschluss soll daran erkennbar sein, dass ausstehende Arbeit mit höherer Priorität nicht mehr durch Jobs mit niedriger Priorität blockiert wird und die Auswirkungen auf die Performance gemessen werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Motivation

Think the following situation:

  1. The browser event loop has a pending event that fires an event listener that schedules high-priority work to JSKit's executor.
  2. 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.

Vorherrschende Sprache
Swift
Sterne
986
Forks
76
Ø Merge
21 Std. 11 Min.
Gemergte PRs (30 T.)
4

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus swiftwasm/JavaScriptKit

Alle Issues in swiftwasm/JavaScriptKit

Ähnliche Issues

Weitere Issues zu Swift

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.