Имя: Пароль:
1C
 
В 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с массив это объект, как и другие универсальные коллекции
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn