"Leaky" memory usage when using repeat_infinite()
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 42/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- rust
- Domínio
- audio-video-rtc
Direção de pesquisa
Start by reading the repeat_infinite() implementation and the source types it wraps, then reproduce the reported growth with the Rust 0.20.1 setup: a Sink playing a Decoder over a Cursor<Vec<u8>>. Compare memory use with and without repetition over time. The issue is resolved when repeated playback no longer causes unbounded memory growth; the report does not name a test or file.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hello,
I'm using Rodio for my application and I'd like for my music to repeat multiple times. I've found the repeat_infinite() function for the Source struct but when I monitored the memory usage I've found out that it's growing about at 10mb every 15 seconds.
I haven't checked if it eventually caps, I only saw that it went from 30mb of memory to 100mb+.
Not using repeat_infinite() works as intended, the memory usage doesn't move.
In my app I create a Sink and I append the Decoder wrapping my music. I assumed that the problem was about buffering more and more music, but in my case the music is in a Cursor<Vec<u8>> so it shouldn't load any more of it (plus my music file is definitely less than 70mb).
System:
OS: Linux X11 pop 22.04
Memory: 61.9 GiB
Architecture: x86_64
GPU: NVIDIA GeForce RTX 4070 || NVIDIA || 560.35.03
Relevant crates:
cpal = "0.15.3"
rodio = "0.20.1"
- Linguagem predominante
- Rust
- Estrelas
- 2.5k
- Forks
- 338
- Merge médio
- 1d 3h
- PRs com merge (30d)
- 1
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o 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 RustAudio/rodio
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 73/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
-
WavDecoder::size_hint underflows (u32 wrap, ~4.29e9) after EOF, causes multi-GB Vec::collect() allocationTalvez já em andamento @marin-m assumiu há 5 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
Todas as issues de RustAudio/rodio
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Y-ASLant/ElegantClipboard#178 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
linxiv-dev/linXiv#384 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug drawings ui
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
userFRM/egui-charts#1595 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
smoltcp-rs/smoltcp#1235 ·
Mantenedores costumam responder em até 1 dia
-
scope:core type:security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia