Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Event loop scheduling improvement

Aberta
#282 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript, swift, wasm
Domínio
performance, web-dev

Direção de pesquisa

Comece pelo loop do executor em Sources/JavaScriptEventLoop/JobQueue.swift, especialmente pela seção vinculada, e acompanhe como os jobs Swift enfileirados são executados antes que o controle retorne ao loop de eventos do navegador. Defina e avalie uma abordagem de scheduling que ceda após uma quantidade limitada de tempo do executor, demonstrando a conclusão ao mostrar que o trabalho pendente de maior prioridade não está mais bloqueado por jobs de baixa prioridade e medindo o impacto no desempenho.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Swift
Estrelas
986
Forks
76
Merge médio
21h 11min
PRs com merge (30d)
4

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de swiftwasm/JavaScriptKit

Todas as issues de swiftwasm/JavaScriptKit

Issues semelhantes

Mais issues de Swift

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.