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

Virtual scrolling in the layer tree

Aberta
#4,627 2 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
74/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Domínio
frontend, performance

Direção de pesquisa

Start in frontend/src/components/panels/Layers.svelte at lines 567-571 and inspect how layer rows are rendered. Reproduce the problem with 10,000 layers, then verify that only visible rows are created while scrolling remains correct. Done means the layer tree stays responsive and its scrollbar still represents the full layer list.

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

Descrição

Performance

With 10_000 layers, the layer tree takes 8s to render. This is obviously somewhat unacceptable.

performance profile showing the svelte layer tree taking 8s

By only creating DOM nodes for the layer rows that are visible (usually 10-20) the performance could be improved and could become independent of the number of layers. Since all of the layer rows are the same height it would be trivial to add a spacer at the top and bottom to ensure the scroll bars remain the correct height.

Working towards #4572.

Relevant code:
https://github.com/GraphiteEditor/Graphite/blob/55c4e6689b3a99e56749280b9694ffac4037c3e7/frontend/src/components/panels/Layers.svelte#L567-L571

Linguagem predominante
Rust
Estrelas
27.6k
Forks
1.3k
Merge médio
1d 3h
PRs com merge (30d)
145

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem 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 GraphiteEditor/Graphite

Todas as issues de GraphiteEditor/Graphite

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

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