Entendendo a Heap e o Garbage Collector em .NET

  Рет қаралды 7,992

EximiaCo - Excelência Tecnológica

EximiaCo - Excelência Tecnológica

Күн бұрын

Пікірлер: 56
@RodrigoBranas
@RodrigoBranas 4 жыл бұрын
Parabéns pelo conteúdo!
@CaueImp
@CaueImp 8 ай бұрын
Que conteúdo incrível, didática e ritmo excelente de um contéudo tão difícil de se encontrar. Trabalho com processamento de frames no .NET Core e frequentemente me deparava com exceções de memória, incrível entender o que está acontencendo por de baixo dos panos e ter agora caminhos a se explorar para uma possível resolução deste problema. Obrigado, parabéns e sucesso!!
@daviholanda205
@daviholanda205 4 жыл бұрын
Quando o criamos um objeto singleton no container de injeção de dependências, é criado alguma flag, por exemplo, para ele ser tratado de forma diferencial na heap?
@elemarjr
@elemarjr 4 жыл бұрын
Não. Ele apenas será promovido rapidamente para gen2.
@rafaelferreiraalves2258
@rafaelferreiraalves2258 4 жыл бұрын
Elemar, você deveria fazer cursos sobre esses assuntos. Certeza que iria ter muita gente querendo comprar. Parabéns , excelente.
@darklinux_
@darklinux_ Жыл бұрын
Vídeo antigo, mas me ajudou a entender o funcionamento do GC. Trabalho com Middleware e no dia a dia quase sempre vem problemas de OutOfMemory. Sei que estava relacionado com o Heap, mas não sabia o porquê isso acontece(ia). Obrigado.
@adersantos4582
@adersantos4582 2 жыл бұрын
Esse é um dos vídeos mais legais que já assisti.
@kelvimartinsr
@kelvimartinsr 4 жыл бұрын
Um conteúdo muito importante que é tão pouco abordado, meus parabéns
@petersonandradetube
@petersonandradetube 4 жыл бұрын
já deixo o like antes de ver q já sei q vai ser bom
@pcrissantos
@pcrissantos Жыл бұрын
Excelente conteúdo!
@guilhermeestimo3284
@guilhermeestimo3284 8 ай бұрын
Que aula 👏👏👏👏
@headshotslol
@headshotslol 2 жыл бұрын
Otimo conteudo... poderia incluir exemplos com GC finalize ?
@r3v01u710n5
@r3v01u710n5 4 жыл бұрын
Excelente explicação. Obrigado!
@alexandrejunges2431
@alexandrejunges2431 4 жыл бұрын
Parabéns pelo excelente vídeo. Esse tipo de conhecimento é muito importante e negligenciado por muitos.
@BrunoSantos-yc7lc
@BrunoSantos-yc7lc 6 ай бұрын
Great content!
@thiagovieira7333
@thiagovieira7333 4 жыл бұрын
Cara show de bola, Parabens pela didatica... Continue suas explicações são ótimas.
@Albertkellner1985
@Albertkellner1985 4 жыл бұрын
Muito bom!! Excelente didática! Parabéns!! =D
@ruidias8195
@ruidias8195 2 жыл бұрын
Muito bom. Excelente.
@Justy-SE
@Justy-SE 4 жыл бұрын
Sempre conteúdo de qualidade. Meus parabens :) :)
@jeronimojunior
@jeronimojunior 4 жыл бұрын
Meu sonho se realizando ao ver esse vídeo
@RafaelGimenez1912
@RafaelGimenez1912 2 жыл бұрын
Ótima explicação
@HumbertoPereira1994
@HumbertoPereira1994 4 жыл бұрын
muito bom o vídeo Elemar Jr. Sensacional!!!
@lucaserlacher1191
@lucaserlacher1191 4 жыл бұрын
Que canal incrível!!! Excelente conteúdo.
@MrFelipefronte
@MrFelipefronte 3 жыл бұрын
Que maravilha de conteúdo, Muito claro, muito bem explicado! Muitíssimo obrigado pelo conhecimento compartilhado!!!
@luan_maik
@luan_maik 4 жыл бұрын
"GC para SERVIDORES, costuma performar muito bem em SERVIDORES ", ironia forte kkkk
@rafaelferreiraalves2258
@rafaelferreiraalves2258 4 жыл бұрын
Excelente conteúdo. Não sei o motivo de não ser tão explorado. Parabéns Elemar.
@rafael.damiani
@rafael.damiani 4 жыл бұрын
MT bom, Elemar!! Obrigado pela aula
@geiltonxavierbr
@geiltonxavierbr 4 жыл бұрын
Excelente!
@jeacdsantos
@jeacdsantos 2 жыл бұрын
Ótima aula, excelente didática!
@wilsonsantos4994
@wilsonsantos4994 3 жыл бұрын
Cara assisto esse video de vez em quando, sempre aprendo uma coisa nova, parabéns conteúdo muito bom e denso, Me ajuda com o entendimento da sua explicação final sobre o GC.SupressFinalize, todas as classes que criamos sem o Dispose Partners vão automaticamente para o GEN1, ou tudo que tem Finalize implementado no código vai para GEN1 ?
@wagnerbreggi2943
@wagnerbreggi2943 3 жыл бұрын
Muito obrigado por suas aulas. Sem elas, muito do que eu sei ficaria em uma "caixa preta".
@GabrielFaraday
@GabrielFaraday 4 жыл бұрын
Excelente vídeo
@MrWaryus
@MrWaryus 3 жыл бұрын
Muito bom!
@DenisioRodrigues
@DenisioRodrigues 4 жыл бұрын
Agora tudo faz sentido. Boa didática. Me inscrevi depois desse vídeo.
@bsdrago
@bsdrago Жыл бұрын
Excelente
@jschurt
@jschurt 4 жыл бұрын
Ótimo vídeo mais uma vez. Duas dúvidas: 1. Como eu faço pra checar qual dos 3 GCs está sendo executado? 2. Como faço para alterar o GC?
@guilhermecaixeta8080
@guilhermecaixeta8080 4 жыл бұрын
Uma dúvida, já li a respeito sobre a heap e a stack, e que os objetos do tipo value type são armazenados na stack e os references types na heap. Agora só não me recordo se no vídeo de struct isso é passado. Bom mais desde já ótimo vídeo
@elemarjr
@elemarjr 4 жыл бұрын
Struct em C# é alocada, por padrão, na Stack. Exceto quando propriedade de uma classe ou elemento de array não alocado com stackalloc
@pulgown1
@pulgown1 4 жыл бұрын
Tenho uma pergunta em relação a variaveis do tipo statica e objetos do mesmo tipo. Quando eu crio esses tipos em especifico, se eu não me engano, eles são alocados diretamente na low frequency heap. Então, esses tipos, são mais propicios a serem promovidos de generations?
@Hd1fernando
@Hd1fernando 4 жыл бұрын
Obrigado pelo excelente conteúdo. Pode indicar mais fontes de conhecimento para continuar aprendendo sobre esse assunto?
@elemarjr
@elemarjr 4 жыл бұрын
Há alguns bons livros que podemos recomendar. Deu uma olhada nos posts no site da EximiaCo?
@AlbertoMonteiro
@AlbertoMonteiro 4 жыл бұрын
Sensacional!!
@luan_maik
@luan_maik 4 жыл бұрын
A compactação que o GC faz na memória seria o equivalente aos programas de desfragmentação de disco rígido, mas com observações ao tempo de suspensão da aplicação, visando estratégias para desfragmentar em menor tempo possível ao invés de garantir a desfragmentação completa e demorada?
@EximiaCo
@EximiaCo 4 жыл бұрын
A analogia é válida.
@alexanlp
@alexanlp 4 жыл бұрын
Elemar, não sei se entendi muito bem o uso do GC.SupressFinalize. Com ele estou dizendo ao GC que ele não precisa coletar memória daquele objeto porque eu já fiz a desalocação? Por exemplo, um Dispose() em uma conexão com o banco de dados ou até uma lista de objetos setadas para null.
@elemarjr
@elemarjr 4 жыл бұрын
Não. Está dizendo ao GC que não é necessário executar o código do "Finalize" porque ele já foi executado.
@elemarjr
@elemarjr 4 жыл бұрын
Sentar uma variável para null retira a referência para um objeto, mas o objeto em si permanece alocado até que o GC colete.
@thadeuconstantino1236
@thadeuconstantino1236 2 жыл бұрын
Muuuito bom meeeeesmo
@wsantosdev
@wsantosdev 4 жыл бұрын
Sobre os tipos de GC, o modo server não é automaticamente utilizado quando o ambiente é Windows Server? Me lembro que uma vez forcei, via app.config, uma app WinForms pra rodar em modo server num Windows Server e depois vi que não precisava - isso faz muito tempo, posso estar falando bobagem. rs Abraço!
@elemarjr
@elemarjr 4 жыл бұрын
Não. Não faz sentido. Aliás, se a aplicação é WinForms, deve ser utilizado o GC desktop.
@wsantosdev
@wsantosdev 4 жыл бұрын
Fui buscar a referência no código e, de fato, pensei ao contrário. A configuração é pra forçar o workstation mode. Rapaz! O código é de 2013. rs Desculpe a nossa falha! :)
@luan_maik
@luan_maik 4 жыл бұрын
O finalize seria um hook de destruição da instancia?
@EximiaCo
@EximiaCo 4 жыл бұрын
De certa forma...
@Alexandre-Machado
@Alexandre-Machado 2 жыл бұрын
👏
@carlosl8832
@carlosl8832 4 жыл бұрын
👍🏽
@SrAzion
@SrAzion Жыл бұрын
Resumindo...... Se vc quer performance, não use C#. Troquei pra C ou C++.
Pequenas mudanças no código, grandes ganhos (10x) na performance em aplicações .NET
20:33
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Como o Garbage Collector (GC) afeta a performance em .NET: Validação de CPF
21:44
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
Gerenciamento de memória - Stack vs Heap | Dias de Dev
14:31
Dias de Dev
Рет қаралды 23 М.
Como funciona o "yield return", do C#, "por baixo do capô"?
18:00
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
.NET Core Garbage Collection
14:54
Coding Tutorials
Рет қаралды 26 М.
Dependency Injection, The Best Pattern
13:16
CodeAesthetic
Рет қаралды 913 М.
Entendendo a área de memória conhecida como Stack
17:36
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Enumeráveis e LINQ, por baixo do capô
23:43
EximiaCo - Excelência Tecnológica
Рет қаралды 4,4 М.
.NET's hidden Garbage Collector - from 1.9GB to 85MB of memory?
3:37
Paralelismo em .NET com Thread, ThreadPool, TPL e CUDA
22:52
EximiaCo - Excelência Tecnológica
Рет қаралды 7 М.
Melhorando a performance de aplicações .NET com "Value Types" bem implementados
11:26
EximiaCo - Excelência Tecnológica
Рет қаралды 5 М.