Удобная навигация по видео :) 0:00 - Начало 1:02 - Разделение памяти 1:38 - Стек 2:24 - Типы данных сохраняемые на стеке 3:40 - Куча 5:10 - Типы данных сохраняемые в куче 6:12 - Пример работы стека 7:58 - Пример совместной работы стека и кучи 10:25 - Завершение
Большое Спасибо!! Вы единственный человек который помог мне понять эту тему визуально,спасибо за старания! За то что показали как работает оперативная память на примерах и в визуальном образе благодарю вас! Очень жалко что такой крутой канал заброшен. Надеюсь что у автора на данный момент все хорошо спасибо за помощь!
Большое спасибо за объяснение, очень доступно и понятно. Особенно порадовало объяснение того, что ссылочный тип находится в куче, если он часть объекта. Всегда сыпался на этом вопросе на собесах, так как было непонятно.
Спасибо за видео! Небольшое уточнение относительно размещения объектов в куче: насколько я помню, на куче отдельно размещается область класса (объект), где содержатся все статичные поля, таблица виртуальных методов и тп, и отдельно - экземпляры, в которых, например, содержатся поля данных. то есть для каждого класса будет некоторая статичная область выделена, а так же области под экземпляры. На примере из видео, для класса Rocket на стеке во фрейме CreateRocket будет выделено место под ссылочную переменную, указывающую на экземпляр в куче, который в свою очередь имеет ссылку на класс (объект). Поправьте, если не прав.
Спасибо за контент! Только 2 маленьких уточнения: - Стек находится не в оперативной памяти, а в реестровой памяти процессора - Гарбедж коллектор не сразу же удалит объект из кучи если на него нету больше ссылки, а когда наполниться поколение и не будет места для новых объектов (разве что принудительно вызовем GC.Collect() method)
@@misha2993 Значит везде ошибаются Стек один на поток как раз и потому, что сам поток идет от процессора и чтобы работал так же быстро и память выделяется тут же в регистре процессора
На канале, где я учусь, а именно у Alek OS, есть видео, где он говорит про стек. И по его словам, он находится в оперативной памяти Также в гугле нашёл доп. инфу про стек регистра процессора и вот то, что там на писано: Стек всегда находится в оперативной памяти. Существует указатель стека, который хранится в регистре процессора, указывающем на вершину стека, то есть на адрес местоположения в верхней части стека.
@@misha2993 там все скомкано и подано вразброс Сам СТЕК (ячейки памяти последовательности действий) находится в процессоре, а вот значения ссылочных типов - в оперативке, в стеке только ссылки на них
@@codaza-channel Прочитайте в документации. Он вызывается если мы вызвали Collect, если заканчивается память или выделенная память превышает допустимый порог
Благодарю за подробное уточнение. Я перепроверил официальную документацию на сайте Microsoft, это действительно так. Оставлю ссылку на документ, на случай, если кому то из гостей канала потребуется информация из первоисточника: docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals?redirectedfrom=MSDN#conditions_for_a_garbage_collection
Удобная навигация по видео :)
0:00 - Начало
1:02 - Разделение памяти
1:38 - Стек
2:24 - Типы данных сохраняемые на стеке
3:40 - Куча
5:10 - Типы данных сохраняемые в куче
6:12 - Пример работы стека
7:58 - Пример совместной работы стека и кучи
10:25 - Завершение
Ролик классный, но есть маленький но очень бесячий минус. Музыка, она ну очень громкая
Heap стоило представить ввиде бинарного дерева
Отличное объяснение! Когда читала про тему, ссылочные типы вообще не понимала. Сейчас гораздо лучше! Жду вторую часть. Автору спасибо!
Рад, что информация была полезной 🙂
За столь хорошее объяснение можно закрыть глаза на музыку. Спасибо большое
Миллион видео пересмотрел чтобы понять где хранятся составные члены ссылочного типа, только тут автор объяснил, спасибо.
Большое Спасибо!! Вы единственный человек который помог мне понять эту тему визуально,спасибо за старания! За то что показали как работает оперативная память на примерах и в визуальном образе благодарю вас! Очень жалко что такой крутой канал заброшен. Надеюсь что у автора на данный момент все хорошо спасибо за помощь!
Повторение- мать учения! Особенно когда понятно и доступно изложено. Благодарность автору и однозначная подписка
Круто, автор не останавливайся!)
Большое спасибо за объяснение, очень доступно и понятно. Особенно порадовало объяснение того, что ссылочный тип находится в куче, если он часть объекта. Всегда сыпался на этом вопросе на собесах, так как было непонятно.
Отлично, ждем 2 часть
Материал в работе 🙂
Благодарю, визуализация приятная
Спасибо за инфографику!
Спасибо за видео! Небольшое уточнение относительно размещения объектов в куче: насколько я помню, на куче отдельно размещается область класса (объект), где содержатся все статичные поля, таблица виртуальных методов и тп, и отдельно - экземпляры, в которых, например, содержатся поля данных. то есть для каждого класса будет некоторая статичная область выделена, а так же области под экземпляры. На примере из видео, для класса Rocket на стеке во фрейме CreateRocket будет выделено место под ссылочную переменную, указывающую на экземпляр в куче, который в свою очередь имеет ссылку на класс (объект). Поправьте, если не прав.
Да, всё верно. На стеке хранится ссылка, которая указывает на объект расположенный в куче.
Очень классно! Хотел освежить память :)
Большое спасибо
Ля, как же круто объясняешь, спасибо
Спасибо!
Это божественно!
Убирайте музыку, пожалуйста. Качество звука тоже желательно улучшить. Музыка сильно мешает слушать звук с басами
спасибо за видео! развивай канал!
Спасибо вам, очень понятно обясняете
круто!!!!!
супер
Thanks)
You are welcome 🙂
а сложно фоновую музыку убрать?
Спасибо за информацию. Но мне кажется, для объяснения такой важный темы, музыка здесь лишняя)
Спасибо за обратную связь. В более поздних роликах музыка тише, а голос громче :) В этом ролике она действительно излишне громкая.
@@codaza-channel да, я уже приступил к изучению второй части темы и заметил разницу). Спасибо за уроки!
Спасибо за видео, но музыка - ужас, мало того что голос басит, так ещё и его еле слышно из за музыки.
Добавить ещё анимацию, то было бы ещё лучше)
Спасибо за контент! Только 2 маленьких уточнения:
- Стек находится не в оперативной памяти, а в реестровой памяти процессора
- Гарбедж коллектор не сразу же удалит объект из кучи если на него нету больше ссылки, а когда наполниться поколение и не будет места для новых объектов (разве что принудительно вызовем GC.Collect() method)
Рад, что ролик оказался полезным. Благодарю за важные уточнения! 💙
Так, погоди
Стек расположен ведь именно в оперативке
Так везде пишут
@@misha2993 Значит везде ошибаются
Стек один на поток как раз и потому, что сам поток идет от процессора и чтобы работал так же быстро и память выделяется тут же в регистре процессора
На канале, где я учусь, а именно у Alek OS, есть видео, где он говорит про стек. И по его словам, он находится в оперативной памяти
Также в гугле нашёл доп. инфу про стек регистра процессора и вот то, что там на писано:
Стек всегда находится в оперативной памяти. Существует указатель стека, который хранится в регистре процессора, указывающем на вершину стека, то есть на адрес местоположения в верхней части стека.
@@misha2993 там все скомкано и подано вразброс
Сам СТЕК (ячейки памяти последовательности действий) находится в процессоре, а вот значения ссылочных типов - в оперативке, в стеке только ссылки на них
Ну не будет объект удалён немедленно
Почему Вы так считаете?
@@codaza-channel Прочитайте в документации. Он вызывается если мы вызвали Collect, если заканчивается память или выделенная память превышает допустимый порог
Благодарю за подробное уточнение. Я перепроверил официальную документацию на сайте Microsoft, это действительно так. Оставлю ссылку на документ, на случай, если кому то из гостей канала потребуется информация из первоисточника: docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals?redirectedfrom=MSDN#conditions_for_a_garbage_collection
А вот и не немедленно. Автор почитай что-нибудь про поколения объектов.
Спасибо!