массивы элементов размерного типа
От: AB100  
Дата: 28.02.08 16:12
Оценка:
Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?
Re: массивы элементов размерного типа
От: Spiceman  
Дата: 28.02.08 16:23
Оценка: +2
Здравствуйте, AB100, Вы писали:

AB>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


Я может глупость скажу, но вроде как GC плевать хотел на размерные элементы массива. GC соберет массив, когда не останется ссылок на него. И освободит занятую им память. И доступа к тем размерным элементам уже не будет.
Re: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 04:16
Оценка:
Здравствуйте, AB100, Вы писали:

AB>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


Они запакованы. В массив.
Re[2]: массивы элементов размерного типа
От: _FRED_ Черногория
Дата: 29.02.08 07:50
Оценка:
Здравствуйте, _d_m_, Вы писали:

AB>>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


___>Они запакованы. В массив.


То есть…
var array = new[] { 0, };
var i = array[0]; // …при доступе к элементу массива целых чисел будет боксинг?
Help will always be given at Hogwarts to those who ask for it.
Re[2]: массивы элементов размерного типа
От: Аноним  
Дата: 29.02.08 08:19
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Здравствуйте, AB100, Вы писали:


AB>>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


___>Они запакованы. В массив.



OK. вроде понял, массив -объект кот.содержит в себе размерные элементы. что-то типа сишного массива Тогда как будет происходить unboxing при доступе к элементу через Getvalue() ?
Re[3]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 09:33
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, _d_m_, Вы писали:


AB>>>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


___>>Они запакованы. В массив.


_FR>То есть…

_FR>
_FR>var array = new[] { 0, };
_FR>var i = array[0]; // …при доступе к элементу массива целых чисел будет боксинг?
_FR>


Нет.
Re[3]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 09:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, _d_m_, Вы писали:


___>>Здравствуйте, AB100, Вы писали:


AB>>>Читая Рихтера, узнал что размерные элементы массива хранятся в куче не запакованными. Вопрос как GC обходится с ними? и кто определяет время жизни таких элементов?


___>>Они запакованы. В массив.


А>OK. вроде понял, массив -объект кот.содержит в себе размерные элементы. что-то типа сишного массива Тогда как будет происходить unboxing при доступе к элементу через Getvalue() ?


А вот через GetValue будет как раз боксинг.
Re[4]: массивы элементов размерного типа
От: _FRED_ Черногория
Дата: 29.02.08 09:38
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>>>Они запакованы. В массив.

_FR>>То есть…
_FR>>var array = new[] { 0, };
_FR>>var i = array[0]; // …при доступе к элементу массива целых чисел будет боксинг?

___>Нет.

Тогда что означает "Они запакованы. В массив."
Help will always be given at Hogwarts to those who ask for it.
Re[5]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 09:44
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, _d_m_, Вы писали:


___>>>>Они запакованы. В массив.

_FR>>>То есть…
_FR>
_FR>>>var array = new[] { 0, };
_FR>>>var i = array[0]; // …при доступе к элементу массива целых чисел будет боксинг?
_FR>

___>>Нет.

_FR>Тогда что означает "Они запакованы. В массив."


Это значит, что ссылочный тип массив хранится в управляемой куче, в нем элементы, и GC отслеживает ссылки на массив а не на отдельные элементы.
Re[6]: массивы элементов размерного типа
От: _FRED_ Черногория
Дата: 29.02.08 09:59
Оценка:
Здравствуйте, _d_m_, Вы писали:

_FR>>Тогда что означает "Они запакованы. В массив."

___>Это значит, что ссылочный тип массив хранится в управляемой куче, в нем элементы, и GC отслеживает ссылки на массив а не на отдельные элементы.

С этим согласен. Ссылочный массив паковать не надо. Значимые данные при извлечении распаковывать тоже не надо. Так кто же "запакован"?
Help will always be given at Hogwarts to those who ask for it.
Re[7]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 10:09
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, _d_m_, Вы писали:


_FR>>>Тогда что означает "Они запакованы. В массив."

___>>Это значит, что ссылочный тип массив хранится в управляемой куче, в нем элементы, и GC отслеживает ссылки на массив а не на отдельные элементы.

_FR>С этим согласен. Ссылочный массив паковать не надо. Значимые данные при извлечении распаковывать тоже не надо. Так кто же "запакован"?


Вот докопался . Элементы. В массив. Неужели аналогию не улавливаешь?
Re[4]: массивы элементов размерного типа
От: Аноним  
Дата: 29.02.08 10:18
Оценка:
Здравствуйте, _d_m_, Вы писали:

...
А>>OK. вроде понял, массив -объект кот.содержит в себе размерные элементы. что-то типа сишного массива Тогда как будет происходить unboxing при доступе к элементу через Getvalue() ?

___>А вот через GetValue будет как раз боксинг.


Да, точно.

А если доступ по индексу как int val = myArray[i] ? мы обращаемся к ссылочному типу(массив) и вытягиваем размерный. Как это относится к упаковке\распаковке? Как работает механизм доступа к размерному элементу внутри ссылочного?
Re[8]: массивы элементов размерного типа
От: _FRED_ Черногория
Дата: 29.02.08 10:19
Оценка:
Здравствуйте, _d_m_, Вы писали:

_FR>>>>Тогда что означает "Они запакованы. В массив."

___>>>Это значит, что ссылочный тип массив хранится в управляемой куче, в нем элементы, и GC отслеживает ссылки на массив а не на отдельные элементы.
_FR>>С этим согласен. Ссылочный массив паковать не надо. Значимые данные при извлечении распаковывать тоже не надо. Так кто же "запакован"?
___>Вот докопался . Элементы. В массив. Неужели аналогию не улавливаешь?

Если элементы запакованы (boxed) в массиве, как ты говоришь, то почему же их не надо распаковывать при доступе к елементам массива?
Help will always be given at Hogwarts to those who ask for it.
Re[9]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 11:34
Оценка: 1 (1)
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, _d_m_, Вы писали:


_FR>>>>>Тогда что означает "Они запакованы. В массив."

___>>>>Это значит, что ссылочный тип массив хранится в управляемой куче, в нем элементы, и GC отслеживает ссылки на массив а не на отдельные элементы.
_FR>>>С этим согласен. Ссылочный массив паковать не надо. Значимые данные при извлечении распаковывать тоже не надо. Так кто же "запакован"?
___>>Вот докопался . Элементы. В массив. Неужели аналогию не улавливаешь?

_FR>Если элементы запакованы (boxed) в массиве, как ты говоришь, то почему же их не надо распаковывать при доступе к елементам массива?


Почитай Рихтера, сейчас под рукой нет, но вот нашел тебе ссылочку:

Важно понимать, что упаковка всегда копирует значение при создании объекта, а распаковка ничего не копирует, а просто возвращает прямую ссылку на само значение (хотя чаще всего результат распаковки все равно куда-нибудь копируется).

Re[5]: массивы элементов размерного типа
От: _d_m_  
Дата: 29.02.08 11:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, _d_m_, Вы писали:


А>...

А>>>OK. вроде понял, массив -объект кот.содержит в себе размерные элементы. что-то типа сишного массива Тогда как будет происходить unboxing при доступе к элементу через Getvalue() ?

___>>А вот через GetValue будет как раз боксинг.


А>Да, точно.


А>А если доступ по индексу как int val = myArray[i] ? мы обращаемся к ссылочному типу(массив) и вытягиваем размерный. Как это относится к упаковке\распаковке? Как работает механизм доступа к размерному элементу внутри ссылочного?


См. мой ответ Чемберлену, ой то есть _FRED_-у выше по ветке .

PS: Чтобы не было недоразумений: работа с массивами размерного типа не принято назвать упаковкой/распаковкой, но работает совершенно аналогично.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.