Тёмный

Gerenciamento de memória - Stack vs Heap | Dias de Dev 

Dias de Dev
Подписаться 35 тыс.
Просмотров 22 тыс.
50% 1

Nem só de prática vivem devs. É muito importante que a gente também estude teoria e esse é o foco deste vídeo. Nós vamos falar sobre gerenciamento de memória, focando na diferença entre a stack e a heap, os 2 espaços mais "famosos" da memória de um processo.
Embora seja muito mais comum lidarmos de forma mais direta com a memória em linguagens mais próximas do hardware como (Rust, C++ ou C), também é importante que a gente saiba como a memória funciona em linguagens de mais alto nível como PHP, Java, JavaScript, C# etc.
Se quiser se aprofundar em conteúdos (tanto teóricos quanto práticos) de computação, considere dar uma olhada na Alura. Aqui tem 15% de desconto:
tidd.ly/43UfATs
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: t.me/diasdedev
Twitter: / cviniciussdias
LinkedIn: / cviniciussdias
GitHub: github.com/CVi...

Наука

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 89   
@franguimaraes6385
@franguimaraes6385 2 года назад
Trabalho com Elixir e estou estudando Rust. Show de bola a aula :)
@DiasDeDev
@DiasDeDev 2 года назад
Que máximo, Fran. Fico feliz que tenha gostado. :-D
@DecisoesGamers
@DecisoesGamers Год назад
Que aula em, Top. like pela informação do StackOverFlow!
@DiasDeDev
@DiasDeDev Год назад
Valeu! :-D
@isaacvieira3538
@isaacvieira3538 2 года назад
Eu estou estudando rust como primeira linguagem.... vim aquii entender um pouco mais sobre alocação de memória e seu video foi o melhor que encontrei rs
@DiasDeDev
@DiasDeDev 2 года назад
Uau, que honra, Isaac! Fico feliz de verdade de ter sido útil! :-D
@you_won
@you_won 2 года назад
Po, temo que divulgar esse teu canal aí, Vinicius. Comecei a te acompanhar nas aulas do Alura, e parabéns mesmo pelo conteúdo cara, muito rico mesmo. 😁
@DiasDeDev
@DiasDeDev 2 года назад
Toda ajuda é bem-vinda! :-D Fico feliz que esteja gostando. :-)
@MatheusRodacki
@MatheusRodacki 6 месяцев назад
Muito Bom, agora sim me clareou a mente para esses conceitos que pareciam muito complexos mas que você explicou de uma maneira bem intuitiva. Muito obrigado!!!!!
@DiasDeDev
@DiasDeDev 6 месяцев назад
Fico feliz de ter sido útil. 😁
@josetandavala5805
@josetandavala5805 Год назад
Estou estudar Rust dei uma pausa no meu estudos para estudar os concietos fundamentais de ciêncida da computação, cai de paraqueda no seu video e adorei, alias acabaste de ganhar mas um inscrito. Parabéns pelo conteúdo.
@DiasDeDev
@DiasDeDev Год назад
Que bom que gostou, José. Muito obrigado! :-D
@rotognin
@rotognin 2 года назад
Muito legal. Eu trabalho com Cobol, e uso um "framework" chamado Acucobol da Micro Focus. Quando compilo um programa, ele gera um arquivo .acu que será executado por uma máquina virtual no windows. Quando chamo outro programa (call "programa") ele é executado, e quando finaliza eu preciso usar o comando cancel "programa", senão ele fica em memória e poderá gerar o stack overflow, citado no vídeo.
@DiasDeDev
@DiasDeDev 2 года назад
Caraca, maneiro saber que você trabalha com Cobol. Em que tipo de sistema você trabalha?
@rotognin
@rotognin 2 года назад
@@DiasDeDev Em um ERP no setor de transporte rodoviário de cargas. O sistema é em Cobol rodando no windows por uma máquina virtual, e usamos o Delphi para fazer integrações com webservices.
@DiasDeDev
@DiasDeDev 2 года назад
@@rotognin Muito maneiro! Como eu conheço pouquíssimo o mundo dev além da web, ia me amarrar se fosse possível te trazer pra uma live do canal no futuro bater um papo sobre isso. Acha que rola? :-D
@rotognin
@rotognin 2 года назад
@@DiasDeDev Rapaz, seria interessante sim! Mas sou um pouco tímido rsrs. Desde já agradeço o convite e seria uma honra grande!
@DiasDeDev
@DiasDeDev 2 года назад
@@rotognin rsrsrs Sem problemas. Prometo que vai ser uma live bem curta e sem perguntas difíceis. Se importa de me chamar no telegram pra gente combinar. Provavelmente vai ser pra um futuro bem distante porque ainda não acertei como fazer lives aqui. rsrss t.me/cviniciussdias
@gustav_spin
@gustav_spin 2 года назад
Nossa mano, video muito bom! Foi uma explicação muito boa, simples e completa. Eu faço parto do grupo que estuda Rust.
@DiasDeDev
@DiasDeDev 2 года назад
Fico feliz demais que tenha gostado. :-D
@Chrisz123-v3j
@Chrisz123-v3j 5 месяцев назад
Bacana, muito explicativo!
@DiasDeDev
@DiasDeDev 5 месяцев назад
Que bom que gostou! :-D
@milenaL.B
@milenaL.B 2 года назад
Estou estudando C na escola 42SP. obrigada pelo conteúdo!
@DiasDeDev
@DiasDeDev 2 года назад
Fico muito feliz que tenha sido útil. :-D
@gustavoschneider469
@gustavoschneider469 2 года назад
Trabalho com PHP, mas estou estundando Rust e também quero aprender C#. Mas ótimo vídeo, seus cursos na Alura são excelentes!
@DiasDeDev
@DiasDeDev 2 года назад
Eu sempre acho válido aprender várias linguagens. Bons estudos, Gustavo! :-D
@viniciusalkimin3700
@viniciusalkimin3700 Год назад
Dev Java e estudando Rust contigo na Alura.
@DiasDeDev
@DiasDeDev Год назад
Opa, espero que curta! :-D
@MatheusSantos-pn9nq
@MatheusSantos-pn9nq 2 года назад
C#, tou estudando mais pra jogos kkk, curti demais o vídeo!!
@DiasDeDev
@DiasDeDev 2 года назад
Maneiro, Matheus. Fico feliz que tenha gostado. :-D
@luan_maik
@luan_maik 2 года назад
Show de bola. Já da pra fazer um gancho e fazer um vídeo sobre Garbage Collector e outro sobre Value types e Reference types
@DiasDeDev
@DiasDeDev 2 года назад
Ótimas ideias, Luan!!
@ChuteNoBigode
@ChuteNoBigode 2 года назад
Show de bola, utilizo C# e Unity o
@brubserdan
@brubserdan Год назад
Agora entendi :D o prof da faculdade não soube passar o conteudo tao bem quanto tu
@DiasDeDev
@DiasDeDev Год назад
Fico feliz demais por ter sido útil!
@__und3f1n3d__
@__und3f1n3d__ 2 года назад
Fala, Vinicus! Priemiramente, parabéns pelo vídeo. Muito esclarecedor. Eu tenho uma curiosidade que não sei se saberia me responder. Por exemplo, quando você fala sobre alocação de memória com o stack pointer e fala (da direita para a esquerda), isso tem a ver com o conceito de endianess? Falo isso porque quando alocamos um int em C (4 bytes), algumas arquiteturas incrementam o endereço de memória (hexa) em +4 para o próximo data type e outras decrementam em -4. Abraço!
@DiasDeDev
@DiasDeDev 2 года назад
Não tem relação com endianess (pelo menos o que eu conheço) não. É só porque a stack é alocada nos maiores endereços de memória reservados pro processo e vem crescendo "pra baixo". Por isso a representação horizontal costuma ser feita da esquerda pra direita, porque o ponteiro vem sendo subtraído.
@__und3f1n3d__
@__und3f1n3d__ 2 года назад
@@DiasDeDev Valeu, obrigado por responder!
@lincolnbiancardi6990
@lincolnbiancardi6990 2 года назад
Ótimo vídeo mano, conteúdo muito interessante!
@DiasDeDev
@DiasDeDev 2 года назад
Que bom que curtiu, mano. 😁
@cpqd_viola
@cpqd_viola 2 года назад
Trabalho com C para embarcados. Estou estudando Rust e vim parar aqui haha meu objetivo é conseguir rodar Rust em um microcontrolador da Nordic. Me deseja sorte 😅 Parabéns pelo conteúdo! Vamos pra cima!!
@DiasDeDev
@DiasDeDev 2 года назад
Caraca, que máximo! Que bom que gostou. Boa sorte nessa jornada!!
@araujored1146
@araujored1146 4 месяца назад
Fui a milésima curtida do vídeo. Ótima explicação!
@DiasDeDev
@DiasDeDev 4 месяца назад
Que maneiro! Nem sabia que eu tinha um vídeo com tantas curtidas! 🤩 Fico feliz que tenha sido útil.
@doretox
@doretox Год назад
Ótimo video
@DiasDeDev
@DiasDeDev Год назад
Que bom que gostou. :-D
@arozendojr
@arozendojr 2 года назад
não exatamente sobre memória, um exemplo bom, seria passar linha a linha , uma quantidade grande de logs em um arquivo no disco. se ficar executando 10 milhões de logs, linha a linha, o disco fica como gragalo, se subir tudo na memória, e escrever no disco de uma vez, a memória pode acabar, o melhor caso seria esperar a memória ficar no máximo 80% livre ou acabar os registro, para escrever no disco
@DiasDeDev
@DiasDeDev 2 года назад
E em operações de I/O, programação assíncrona ajuda muito também. 😁
@ThormesFilgueira
@ThormesFilgueira 2 года назад
Ótimo conteúdo, mas fiquei com uma dúvida meio "lateral". A utilização de Closures ou funções anônimas altera a forma como elas são armazenadas e executadas na memória?
@DiasDeDev
@DiasDeDev 2 года назад
Ótima pergunta. Não altera. O que muda é como cada interpretação (linguagem, principalmente) vai lidar com o fato de acessar o escopo externo. A maioria simplesmente faz uma cópia pro escopo da closure.
@williamcarvalhoCoelho
@williamcarvalhoCoelho 3 месяца назад
Fiquei com uma duvida, no java geralmente usamos variáveis estaticas final para armazenar constantes, acreditava que ela ficava na stack ou na heap, inclusive outro dia vi um cara dizendo que não era uma boa pratica ter muitos metodos estaticos, por conta disso, lotar a memoria, mas pela sua explicação essas variáveis fica em outro compartimento da memoria. Como seria o comportamento para esse casos?
@GustavoSilva-hh8or
@GustavoSilva-hh8or 3 месяца назад
Geralmente, constantes ficam na sessão "data". Ela é usada para definir rótulos (ponteiros, assim digamos) que não sofrerão alterações de valor no decorrer do programa. Imagine uma situação em que você quer criar um programa simples que recebe dois números e exibe um resultado. Na sessão "data", serão alocados três rótulos. O primeiro rótulo solicita ao usuário para digitar o primeiro número ("Digite o primeiro número: "); o segundo rótulo solicita o usuário para digitar o segundo número ("Digite o segundo número: "); o terceiro exibe o resultado ("O resultado é...") Em Assembly, é necessário definir no início do programa quais são os seus rótulos para cada sessão Na de "data", que trata dos dados constantes (lembrando que o termo "constante" não existe em Assembly), ficaria algo assim em Assembly (NASM), de forma simplificada: section .data promtp1 db "Digite o primeiro..." prompt2 db "Digite o segundo..." resposta db "O resultado..." Enfim, isso não é um código completo, até porque eu não defini o tamanho dos rótulos e etc, mas resumindo, a sessão de data aloca todos os print que você faz no seu programa, como também outros valores constantes
@DiasDeDev
@DiasDeDev 3 месяца назад
Em linguagens interpretadas como Java, C#, PHP, Ruby, Python etc, cada VM pode escolher como vai armazenar cada informação. Eu não conheço a JVM a fundo, então não sei te dizer com certeza como ela organiza a memória.
@Luisow748
@Luisow748 2 года назад
Show. Obrigado pela aula.
@DiasDeDev
@DiasDeDev 2 года назад
Opa, que bom que curtiu, Luís.
@eduardoalexandre7513
@eduardoalexandre7513 2 года назад
Sensacional cara.....
@DiasDeDev
@DiasDeDev 2 года назад
Opa, que bom que curtiu, Eduardo. :-D
@godsbetstv3172
@godsbetstv3172 Год назад
Assembly Coder
@gustavow5746
@gustavow5746 2 года назад
bom conteúdo! que tal fazer um mais aprofundado?
@DiasDeDev
@DiasDeDev 2 года назад
Bom saber que há interesse, Gustavo. :-D
@vitormoschetta1687
@vitormoschetta1687 2 года назад
Top..
@guiadev4539
@guiadev4539 2 года назад
Muito bom conteúdo e direto ao ponto , iniciei minha carreira usando na época PHP 5 e atualmente uso JS, porém o PHP uma linguagem que eu sempre busco me atualizar. É possível mostrar mas conteúdos relacionado a parte low level do PHP sei que vc conhece muito C e se não for pedir muito séria legal 👌
@DiasDeDev
@DiasDeDev 2 года назад
Não conheço tanto assim de C, mas posso trazer conteúdos sim. 😁😁 Alguma coisa em específico que você queria ver? Posso preparar.
@JuniorMarci27
@JuniorMarci27 Год назад
Trabalho com Python. Mas estou tendo "desafios" com Big Data e estou precisando me preocupar com isso.
@DiasDeDev
@DiasDeDev Год назад
Boa, Junior! Espero que o vídeo tenha sido útil. :-D
@HeliezerGarcia01
@HeliezerGarcia01 2 года назад
Vinicius, o mapa de memória mencionado no começo do vídeo é uma convenção de como os programas compiladores em C devem ser organizados?
@DiasDeDev
@DiasDeDev 2 года назад
Basicamente, sim.
@gssj-o8p
@gssj-o8p 2 года назад
Camisa maneira! fundo de praia com coqueiros e tal ia ficar perfeito hehe
@DiasDeDev
@DiasDeDev 2 года назад
heheheh Acabaram minhas camisas de tecnologia. Não tem mais nenhuma inédita porque não tem tido eventos. :'(
@paulobitfranca
@paulobitfranca Год назад
Estou usando Rust. E tenho aquela sensação de que é a linguagem pela qual eu esperei minha vida toda... rs
@DiasDeDev
@DiasDeDev Год назад
Maneiro que você está curtindo. :-D É realmente uma baita linguagem.
@bruno2182
@bruno2182 2 года назад
PHP e Elixir!
@DiasDeDev
@DiasDeDev 2 года назад
Maneiro! Estudei um pouco de Elixir recentemente e achei bastante interessante. :-D
@123thebruno
@123thebruno Год назад
Cai aqui porque estava estudando boxing e unboxing em c# haha.
@DiasDeDev
@DiasDeDev Год назад
Eu li "boxing" e pensei na luta, porque tem vídeo meu lutando por aí. Kkkkkk Mas depois que li, entendi. Rsrsrs Espero que tenha sido útil pro seu cenário. 😁😁
@123thebruno
@123thebruno Год назад
@@DiasDeDev kkkkk, eita não sabia dessa outra habilidade ai não.
@rothmans_london
@rothmans_london 10 месяцев назад
vim pelo alura da formação de c++ lkkkkk
@DiasDeDev
@DiasDeDev 10 месяцев назад
Espero que esteja gostando. :-D
@rothmans_london
@rothmans_london 10 месяцев назад
Top dms mestre 🙏
@gssj-o8p
@gssj-o8p 2 года назад
Que interessante como o processador aloca memória, ele apenas diz "tá agora o que entrar começa desse ponto, pois mais atrás tá reservado"
@DiasDeDev
@DiasDeDev 2 года назад
Pois é, a alocação na stack é bem simples, né!? Já na heap... rsrsrs
@coresdavivi
@coresdavivi 2 года назад
PHP
@DiasDeDev
@DiasDeDev 2 года назад
Boa! 😁😁
@neyltonbenjamim
@neyltonbenjamim 2 года назад
PHP!!!
@DiasDeDev
@DiasDeDev 2 года назад
Tamo junto! 😁
@MarianaRegiaGuirado
@MarianaRegiaGuirado 8 месяцев назад
Uso C# :)))
@DiasDeDev
@DiasDeDev 8 месяцев назад
Maneiro!! Espero que o vídeo tenha sido útil!
@daviguilhermesouzadumer9109
@daviguilhermesouzadumer9109 2 года назад
Java, JavaScript, Python hehehe
@DiasDeDev
@DiasDeDev 2 года назад
Stack bem variada. :-D
Далее
Entendendo a área de memória conhecida como Stack
17:36
Пчёлы некроманты.
00:46
Просмотров 23 тыс.
Песня РАСПУТИН на русском!🔥
00:56
TRENDNI BOMBASI💣🔥 LADA
00:28
Просмотров 866 тыс.
Coisas de casa que não se usa mais!
14:07
Просмотров 68 тыс.
Stack vs Heap Memory in C++
19:31
Просмотров 570 тыс.
But, what is Virtual Memory?
20:11
Просмотров 282 тыс.
É ISSO QUE O DEV JAVA ACHA DO LARAVEL
8:26
Просмотров 7 тыс.
Скучнее iPhone еще не было!
10:48
Просмотров 618 тыс.
bulletproof❌ Nokia✅
0:17
Просмотров 41 млн
CED: часть 1
23:37
Просмотров 102 тыс.
Пустая коробка вместо iPhone 16 pro
1:00