Вход | Регистрация
 

В 1С массив это массив или связный список?

В 1С массив это массив или связный список?
Я
   ДНН
 
17.08.20 - 15:57
Я имею ввиду как он внутри устроен: как массив (хранится последовательно в памяти) или как связный список (может вразброс храниться) или 1С это скрывают?
   Garykom
 
1 - 17.08.20 - 15:58
(0) ни то ни другое
   H A D G E H O G s
 
2 - 17.08.20 - 16:00
Связный список вроде.

Сделай многомиллионый массив со строками на пару гигабайт и посмотри, будет ли время добавления элемента так же бодро, как в самом начале.
   ДНН
 
3 - 17.08.20 - 16:00
(1) (1) По моему тут только 2 варианта возможно: или последовательно или вразброс и у каждого элемента есть указатель на рядом стоящий элемент (возможно только на следующий). А как тогда?
   H A D G E H O G s
 
4 - 17.08.20 - 16:01
(1) Давай, Егор, рви покровы.
   NorthWind
 
5 - 17.08.20 - 16:03
(0) рискну предположить, что скорее всего массив. Почему - потому что даже в достаточно древних языках вроде Delphi такие вещи обычно делались одним куском кучи и реаллочились.
(2) там реаллочится скорее всего не по элементу, а квантами. На одном элементе не заметишь.
   lodger
 
6 - 17.08.20 - 16:04
зачем им изобретать свой велосипед, когда в щщях++ есть heap?
   Garykom
 
7 - 17.08.20 - 16:05
(4) Гм не пора ли кортексинчик начать принимать?

Сабж уже пару-тройку раз был обсосан на форуме с тестами
   H A D G E H O G s
 
8 - 17.08.20 - 16:07
(5) 2 гига реаллока дадут прикурить полюбому. Но да, есть вариант непопасть в квант, если квантование умное и завязано на размер данных. Поэтому надо хитро собрать замеры по времени формирования всего массива.
   Garykom
 
9 - 17.08.20 - 16:07
(5) угу но не совсем
там массив который квантами из ссылок на значения в куче
   Garykom
 
10 - 17.08.20 - 16:09
(8) стандарт увеличения массива при превышении на 1 элемент это выделение в два раза больше места и копировании старого массива в начало с освобождением старого места
   H A D G E H O G s
 
11 - 17.08.20 - 16:10
(9) Точно. Да, ты прав. Вот видишь, Егор, я признаю, что могу чего - то не знать, либо быть неправым, нет ничего страшного.
   Serginio1
 
12 - 17.08.20 - 16:12
Ну это может быть и список массивов
http://rsdn.org/forum/src/450320.1
   ДНН
 
13 - 17.08.20 - 16:16
(10) По стандарту увеличение происходит только когда уже не хватает места для нового элемента, или немного заранее?
   Garykom
 
14 - 17.08.20 - 16:20
(13) имхается 1С с этим играется в разных версиях
   Garykom
 
15 - 17.08.20 - 16:21
(14)+ причем в отдельных случаях увеличение может быть просчитано заранее, например "Для Сч = 1 По 5 Цикл"
   Конструктор1С
 
16 - 17.08.20 - 17:22
(0) в 1с массив это объект, как и другие универсальные коллекции

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.