GO_INTERVIEW_LIB Telegram 323
💬 Можно ли утверждать, что после уменьшения размера среза в Go память, занимаемая оставшимися элементами, будет освобождена?

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

Когда мы уменьшаем размер среза, (например, s[:n], где n меньше текущей длины среза s), мы изменяем только длину среза, но не его емкость. Память, связанная с емкостью среза, остается выделенной, поскольку базовый массив, к которому срез имеет доступ, остается неизменным.

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

Таким образом, GC очистит память старого массива (если на него не будут указывать другие срезы) только после реалокации памяти и переноса значений в новый срез.
4👍1



tgoop.com/go_interview_lib/323
Create:
Last Update:

💬 Можно ли утверждать, что после уменьшения размера среза в Go память, занимаемая оставшимися элементами, будет освобождена?

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

Когда мы уменьшаем размер среза, (например, s[:n], где n меньше текущей длины среза s), мы изменяем только длину среза, но не его емкость. Память, связанная с емкостью среза, остается выделенной, поскольку базовый массив, к которому срез имеет доступ, остается неизменным.

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

Таким образом, GC очистит память старого массива (если на него не будут указывать другие срезы) только после реалокации памяти и переноса значений в новый срез.

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/323

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. How to Create a Private or Public Channel on Telegram? You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. While some crypto traders move toward screaming as a coping mechanism, many mental health experts have argued that “scream therapy” is pseudoscience. Scientific research or no, it obviously feels good. Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.!
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American