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