Event loop scheduling improvement
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:
- 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.
- Linguagem predominante
- Swift
- Estrelas
- 986
- Forks
- 76
- Merge médio
- 21h 11min
- PRs com merge (30d)
- 4
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de swiftwasm/JavaScriptKit
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
swiftwasm/JavaScriptKit#793 ·
-
swiftwasm/JavaScriptKit#785 · 1 responsável ·
-
[SwiftBuild] Preserve duplicate archive members when SwiftBuild expands static archives for linking Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
swiftwasm/JavaScriptKit#781 · 3 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
swiftwasm/JavaScriptKit#773 ·
-
swiftwasm/JavaScriptKit#767 · 1 responsável ·
Todas as issues de swiftwasm/JavaScriptKit
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
maxgoedjen/secretive#840 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
manaflow-ai/cmux#13763 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
openwallet-foundation/multipaz#2028 ·