C# Стек и Куча | Stack and Heap | Часть 1

Поделиться
HTML-код
  • Опубликовано: 15 июл 2024
  • Это первая часть серии роликов посвященных работе памяти в .NET. В данном видео мы поговорим о том, что такое стек и куча, а также наглядно посмотрим на их совместное взаимодействие. Будет интересно :)
    Ссылка на вторую часть: • C# Стек и Куча | Stack...
    Telegram канал: t.me/codaza
    На кофе ☕️: pay.cloudtips.ru/p/179d0532
    Patreon: / codaza
    Boosty: boosty.to/codaza
    0:00 - Начало
    1:02 - Разделение памяти
    1:38 - Стек
    2:24 - Типы данных сохраняемые на стеке
    3:40 - Куча
    5:10 - Типы данных сохраняемые в куче
    6:12 - Пример работы стека
    7:58 - Пример совместной работы стека и кучи
    10:25 - Завершение
    #csharp #стек #куча #stack #heap #stackvsheap

Комментарии • 61

  • @codaza-channel
    @codaza-channel  3 года назад +12

    Удобная навигация по видео :)
    0:00 - Начало
    1:02 - Разделение памяти
    1:38 - Стек
    2:24 - Типы данных сохраняемые на стеке
    3:40 - Куча
    5:10 - Типы данных сохраняемые в куче
    6:12 - Пример работы стека
    7:58 - Пример совместной работы стека и кучи
    10:25 - Завершение

    • @kitkit5405
      @kitkit5405 Год назад

      Ролик классный, но есть маленький но очень бесячий минус. Музыка, она ну очень громкая

    • @savvamolotkov9206
      @savvamolotkov9206 Год назад

      Heap стоило представить ввиде бинарного дерева

  • @essentia9
    @essentia9 4 дня назад

    За столь хорошее объяснение можно закрыть глаза на музыку. Спасибо большое

  • @user-jj9rb9nu2h
    @user-jj9rb9nu2h 3 года назад +24

    Отличное объяснение! Когда читала про тему, ссылочные типы вообще не понимала. Сейчас гораздо лучше! Жду вторую часть. Автору спасибо!

    • @codaza-channel
      @codaza-channel  3 года назад +5

      Рад, что информация была полезной 🙂

  • @farfetched0
    @farfetched0 Год назад +1

    Миллион видео пересмотрел чтобы понять где хранятся составные члены ссылочного типа, только тут автор объяснил, спасибо.

  • @alinanur5628
    @alinanur5628 2 года назад +4

    Спасибо!

  • @romanfersion6006
    @romanfersion6006 2 года назад +4

    Большое спасибо

  • @daredevil3d629
    @daredevil3d629 2 года назад +3

    Круто, автор не останавливайся!)

  • @sergeymigel4680
    @sergeymigel4680 Год назад

    Это божественно!

  • @mar_kha
    @mar_kha 2 года назад +3

    Спасибо за инфографику!

  • @Jicefrost
    @Jicefrost 2 года назад +1

    спасибо за видео! развивай канал!

  • @alex.artechtattoo
    @alex.artechtattoo 2 года назад +1

    Повторение- мать учения! Особенно когда понятно и доступно изложено. Благодарность автору и однозначная подписка

  • @JustEnergyFlow
    @JustEnergyFlow 2 года назад +1

    Благодарю, визуализация приятная

  • @user-ys6vv6zc8w
    @user-ys6vv6zc8w 7 месяцев назад +1

    Большое Спасибо!! Вы единственный человек который помог мне понять эту тему визуально,спасибо за старания! За то что показали как работает оперативная память на примерах и в визуальном образе благодарю вас! Очень жалко что такой крутой канал заброшен. Надеюсь что у автора на данный момент все хорошо спасибо за помощь!

  • @anm4972
    @anm4972 Год назад

    Спасибо вам, очень понятно обясняете

  • @youchinafriend
    @youchinafriend 2 года назад +2

    Ля, как же круто объясняешь, спасибо

  • @user-wm4ed2on1x
    @user-wm4ed2on1x 3 года назад +3

    Отлично, ждем 2 часть

  • @Ne1gh_
    @Ne1gh_ Месяц назад

    Очень классно! Хотел освежить память :)

  • @tanchikipro523
    @tanchikipro523 Год назад

    Большое спасибо за объяснение, очень доступно и понятно. Особенно порадовало объяснение того, что ссылочный тип находится в куче, если он часть объекта. Всегда сыпался на этом вопросе на собесах, так как было непонятно.

  • @glukh0v_d1ma
    @glukh0v_d1ma Год назад

    круто!!!!!

  • @Krutinello
    @Krutinello 2 года назад +1

    супер

  • @rdragon587
    @rdragon587 2 года назад +1

    Thanks)

  • @timur2887
    @timur2887 Год назад +4

    Спасибо за видео! Небольшое уточнение относительно размещения объектов в куче: насколько я помню, на куче отдельно размещается область класса (объект), где содержатся все статичные поля, таблица виртуальных методов и тп, и отдельно - экземпляры, в которых, например, содержатся поля данных. то есть для каждого класса будет некоторая статичная область выделена, а так же области под экземпляры. На примере из видео, для класса Rocket на стеке во фрейме CreateRocket будет выделено место под ссылочную переменную, указывающую на экземпляр в куче, который в свою очередь имеет ссылку на класс (объект). Поправьте, если не прав.

    • @codaza-channel
      @codaza-channel  Год назад

      Да, всё верно. На стеке хранится ссылка, которая указывает на объект расположенный в куче.

  • @user-rt4zy6gr1j
    @user-rt4zy6gr1j Год назад +3

    Убирайте музыку, пожалуйста. Качество звука тоже желательно улучшить. Музыка сильно мешает слушать звук с басами

  • @AlexAlex-ms3bg
    @AlexAlex-ms3bg Год назад +3

    а сложно фоновую музыку убрать?

  • @roflin4ik
    @roflin4ik 2 года назад +2

    Спасибо за информацию. Но мне кажется, для объяснения такой важный темы, музыка здесь лишняя)

    • @codaza-channel
      @codaza-channel  2 года назад +2

      Спасибо за обратную связь. В более поздних роликах музыка тише, а голос громче :) В этом ролике она действительно излишне громкая.

    • @roflin4ik
      @roflin4ik 2 года назад +2

      @@codaza-channel да, я уже приступил к изучению второй части темы и заметил разницу). Спасибо за уроки!

  • @user-vh5xv3sx1y
    @user-vh5xv3sx1y Год назад

    Добавить ещё анимацию, то было бы ещё лучше)

  • @lenitube
    @lenitube 4 месяца назад

    Спасибо за видео, но музыка - ужас, мало того что голос басит, так ещё и его еле слышно из за музыки.

  • @ydb9901
    @ydb9901 2 года назад +2

    Ну не будет объект удалён немедленно

    • @codaza-channel
      @codaza-channel  2 года назад

      Почему Вы так считаете?

    • @47fps3
      @47fps3 2 года назад +3

      @@codaza-channel Прочитайте в документации. Он вызывается если мы вызвали Collect, если заканчивается память или выделенная память превышает допустимый порог

    • @codaza-channel
      @codaza-channel  2 года назад +3

      Благодарю за подробное уточнение. Я перепроверил официальную документацию на сайте Microsoft, это действительно так. Оставлю ссылку на документ, на случай, если кому то из гостей канала потребуется информация из первоисточника: docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals?redirectedfrom=MSDN#conditions_for_a_garbage_collection

  • @sceptic571
    @sceptic571 5 месяцев назад

    От примера с ракетой глаз дергается. Больная тема.

  • @user-cc7fp1dz3g
    @user-cc7fp1dz3g Год назад +5

    Спасибо за контент! Только 2 маленьких уточнения:
    - Стек находится не в оперативной памяти, а в реестровой памяти процессора
    - Гарбедж коллектор не сразу же удалит объект из кучи если на него нету больше ссылки, а когда наполниться поколение и не будет места для новых объектов (разве что принудительно вызовем GC.Collect() method)

    • @codaza-channel
      @codaza-channel  Год назад +1

      Рад, что ролик оказался полезным. Благодарю за важные уточнения! 💙

    • @misha2993
      @misha2993 Год назад

      Так, погоди
      Стек расположен ведь именно в оперативке
      Так везде пишут

    • @user-cc7fp1dz3g
      @user-cc7fp1dz3g Год назад

      @@misha2993 Значит везде ошибаются
      Стек один на поток как раз и потому, что сам поток идет от процессора и чтобы работал так же быстро и память выделяется тут же в регистре процессора

    • @misha2993
      @misha2993 Год назад

      На канале, где я учусь, а именно у Alek OS, есть видео, где он говорит про стек. И по его словам, он находится в оперативной памяти
      Также в гугле нашёл доп. инфу про стек регистра процессора и вот то, что там на писано:
      Стек всегда находится в оперативной памяти. Существует указатель стека, который хранится в регистре процессора, указывающем на вершину стека, то есть на адрес местоположения в верхней части стека.

    • @user-cc7fp1dz3g
      @user-cc7fp1dz3g Год назад +1

      @@misha2993 там все скомкано и подано вразброс
      Сам СТЕК (ячейки памяти последовательности действий) находится в процессоре, а вот значения ссылочных типов - в оперативке, в стеке только ссылки на них

  • @alexsft2024
    @alexsft2024 3 месяца назад

    А вот и не немедленно. Автор почитай что-нибудь про поколения объектов.

  • @nokia_n-gage
    @nokia_n-gage 2 года назад +3

    Спасибо!