-
> масленица (22.11.07 16:47) [18]
Ты , во-первых, на "тыхто" не ответил)
А во-вторых, "Максимальный размер tStringList"=SizeOf(tStringList)
Ку?)
-
> Может еще в Паскале, когда Integer было 32х-разрядное. Но
> почемуто не 64К, а 64К/4. Хотя какая разница, что тогда
> было....
Эх, молодёжь...
В Паскале (до дельфи-2) Integer никогда не было 32х-разрядное, а когда оно такое стало, ограничения на tStringList уже не стало.
64К -- это было ограничение на непрерывный блок памяти в DOS и Win16 (потому что один сегмент), а 64К/4 -- потому что tStringList содержит массив указателей, а размер указателя -- 4 байта.
-
> Сергей М. © (22.11.07 15:53) [12]
> > Паскаль- Integer 2х-байтовое
> Какое отношение это имеет к
> > размер tStringList
tStringList.count:integer.
Поэтому в вышеописанном случае максимальное число элементов - 32к.
-
> Евгений Р. (22.11.2007 18:08:22) [22]
Кроме count есть еще и понятие экстент, в 16 разрядном режиме он равен 64 кб, значит в экстент не может поместиться более 16K длинных указателей.
-
> Anatoly Podgoretsky © (22.11.07 18:57) [23]
Я думал, что память под указатели выделяется динамически, по мере заполнения коллекции, а не сразу по экстенту (тогда это называли сегментом). Неразумно тогда было так расбрасываться памятью.
-
> Евгений Р. (22.11.2007 20:25:24) [24]
Список содержит список указателей, из любых сегментов, но сам список не может пересекать границу сегмента.
-
Вспоминаем Паскаль, DOS.
1.Объем памяти 640К (до 1 МБ). Называлось "куча"
2.Сегмент данных 64К. Отъедается из кучи.
3.Стек до 64К. Отъедается из кучи.
4.+код+пямять для ДОС...
5.Остается немного.
6.Создаем коллекцию. Из сегмента данных (стека если из процедуры) отъелось несколько байт.
7.Коллекция пустая. Сколько отъелось из скудной кучи? Нисколько или 64К?
-
> Евгений Р. (22.11.07 18:08) [22]
"максимальное число элементов" никак не кореллирует с "Максимальный размер tStringList"
-
> Сергей М. (23.11.2007 10:52:27) [27]
И не может коррелироваться, у tStringList нет размера, не визуальный, а есть только емкость, поскольку контейнер.
-
> Anatoly Podgoretsky © (23.11.07 11:16) [28]
могу доказать что у TStringlist есть размер. Вот только определение размера сложновато: зависит от типа процессора, озу и проч.
-
> KilkennyCat (24.11.2007 20:17:29) [29]
Хочешь сказать 3 на 2 метра, или длиной 12 метров?
-
> Anatoly Podgoretsky © (24.11.07 20:21) [30]
7 на 8
-
> Anatoly Podgoretsky
> Германн
Где вы такие модули памяти видели? Помнится, я выковыривал ящичек озу из "Мир-2", так и он был от силы полметра на полметра и высотой сантиметров тридцать.... а учитывая, что стринглист сожрет не все, размер его будет еще меньше. Но будет!
-
> Где вы такие модули памяти видели?
Я не видел. Но я о них читал. У Азимова.
:-)