|
В 1С массив это массив или связный список? | ☑ | ||
---|---|---|---|---|
0
ДНН
17.08.20
✎
15:57
|
Я имею ввиду как он внутри устроен: как массив (хранится последовательно в памяти) или как связный список (может вразброс храниться) или 1С это скрывают?
|
|||
1
Garykom
гуру
17.08.20
✎
15:58
|
(0) ни то ни другое
|
|||
2
H A D G E H O G s
17.08.20
✎
16:00
|
Связный список вроде.
Сделай многомиллионый массив со строками на пару гигабайт и посмотри, будет ли время добавления элемента так же бодро, как в самом начале. |
|||
3
ДНН
17.08.20
✎
16:00
|
(1) (1) По моему тут только 2 варианта возможно: или последовательно или вразброс и у каждого элемента есть указатель на рядом стоящий элемент (возможно только на следующий). А как тогда?
|
|||
4
H A D G E H O G s
17.08.20
✎
16:01
|
(1) Давай, Егор, рви покровы.
|
|||
5
NorthWind
17.08.20
✎
16:03
|
(0) рискну предположить, что скорее всего массив. Почему - потому что даже в достаточно древних языках вроде Delphi такие вещи обычно делались одним куском кучи и реаллочились.
(2) там реаллочится скорее всего не по элементу, а квантами. На одном элементе не заметишь. |
|||
6
lodger
17.08.20
✎
16:04
|
зачем им изобретать свой велосипед, когда в щщях++ есть heap?
|
|||
7
Garykom
гуру
17.08.20
✎
16:05
|
(4) Гм не пора ли кортексинчик начать принимать?
Сабж уже пару-тройку раз был обсосан на форуме с тестами |
|||
8
H A D G E H O G s
17.08.20
✎
16:07
|
(5) 2 гига реаллока дадут прикурить полюбому. Но да, есть вариант непопасть в квант, если квантование умное и завязано на размер данных. Поэтому надо хитро собрать замеры по времени формирования всего массива.
|
|||
9
Garykom
гуру
17.08.20
✎
16:07
|
(5) угу но не совсем
там массив который квантами из ссылок на значения в куче |
|||
10
Garykom
гуру
17.08.20
✎
16:09
|
(8) стандарт увеличения массива при превышении на 1 элемент это выделение в два раза больше места и копировании старого массива в начало с освобождением старого места
|
|||
11
H A D G E H O G s
17.08.20
✎
16:10
|
(9) Точно. Да, ты прав. Вот видишь, Егор, я признаю, что могу чего - то не знать, либо быть неправым, нет ничего страшного.
|
|||
12
Serginio1
17.08.20
✎
16:12
|
Ну это может быть и список массивов
http://rsdn.org/forum/src/450320.1 |
|||
13
ДНН
17.08.20
✎
16:16
|
(10) По стандарту увеличение происходит только когда уже не хватает места для нового элемента, или немного заранее?
|
|||
14
Garykom
гуру
17.08.20
✎
16:20
|
(13) имхается 1С с этим играется в разных версиях
|
|||
15
Garykom
гуру
17.08.20
✎
16:21
|
(14)+ причем в отдельных случаях увеличение может быть просчитано заранее, например "Для Сч = 1 По 5 Цикл"
|
|||
16
Конструктор1С
17.08.20
✎
17:22
|
(0) в 1с массив это объект, как и другие универсальные коллекции
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |