Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

Большой список строк   Найти похожие ветки 

 
ИМХО ©   (2004-01-16 07:21) [0]

TStringList, насколько мне известно, позволяет удерживает около 32 тысяч строк. Что посоветуют мастера для работы с бОльшим числом строк?


 
ИМХО ©   (2004-01-16 07:23) [1]

Позволяет удерживаТЬ.


 
MBo ©   (2004-01-16 07:27) [2]

нет, количество строк - MaxInt, т.е. 2 миллиарда, ограничение только в доступной вирт. памяти


 
Dmitriy O. ©   (2004-01-16 07:29) [3]

Таблицу Парадокс может удерживать до 1000000 строк.


 
Yuri-7 ©   (2004-01-16 07:32) [4]

array of string


 
ИМХО ©   (2004-01-16 07:52) [5]

Понял, спасибо.


 
Anatoly Podgoretsky ©   (2004-01-16 08:58) [6]

Тут недавно один жаловался, что очень медленно работает у него TStringList с 250 000 строками, очень огорчался, значит можно?


 
ИМХО ©   (2004-01-16 09:44) [7]

Я не видел ту ветку, к сожалению.

Но TMemo и TListBox имеют ограничения?


 
MBo ©   (2004-01-16 09:58) [8]

Да, имеют ограничения в Win9X. Но это не страшно, так как неразумно использовать видимый контрол для хранения/показа такого количества информации


 
ИМХО ©   (2004-01-16 10:06) [9]

Ясно, спасибо.


 
Тимохов ©   (2004-01-16 10:39) [10]

Одним из недостатков строк (ansistring) является большое потребление памяти. Для строки в 1 символ будет заниматься память равная 8+1+1: 8 - для служебной инфы, 1 - под символ, 1 -под символ окончания #0 строки (про последний не уверен, но не в этом суть). К тому же, насколько я понимаю из описания менеджера памяти, память под строки выделяется именно им, а это значит, еще 4 байта накладных расходов под каждый выделенный блок памяти. Итого 13 (возможно 12) байт накладных расходов для строки в один символ.

Вообще все зависит от задачи. Если строки последовательно создаются, но после создания не меняются, то можно хранить их все в едином массиву друг за другом с символом #0 в конце каждой и хранить, если нужен быстрый непоследовательный доступ к строкам, массив индексов начал строк. Если же не произвольный доступ не нужен, то и хранение списка начал можно опустить.

Можно посчитать выгоду:

Например, нужно хранить 1 000 000 строк длиной 10. В случае стандартных строк это будет (10+13)*1000000 примерно 23мб. В случае хранения в единой памяти это 4+(10+1)*1000000 примерно 11мб.

Но это так, мое ИМХО.
Повторюсь, все зависит от условий задачи.



Страницы: 1 вся ветка

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-93495
Татьяна
2004-01-19 13:46
2004.01.29
Размер ComboBox-а


1-93562
frost
2004-01-17 14:22
2004.01.29
String в URL?


7-93711
SkyN
2003-11-08 10:49
2004.01.29
кириллица в названиях файлов на нелокализованном Windows?


1-93581
Marat Zigangirov
2004-01-17 00:32
2004.01.29
Окно сообщения Exception скрыто за главным окном


4-93737
KosilkA
2003-11-23 18:58
2004.01.29
ListView SubitemImages - как узнать ?