Главная страница
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.014 c
1-93466
Veon
2004-01-15 22:54
2004.01.29
Как нарисовать свой заголовок формы??


1-93500
sohat
2004-01-19 09:15
2004.01.29
как поменять кодировку в TMemo?


1-93486
-=Sash=-
2004-01-15 14:04
2004.01.29
Создать свою форму


7-93715
Ertong
2003-11-09 09:39
2004.01.29
Программирование в двоичных кодах.


7-93725
Shaman%20O%20Mega
2003-11-13 14:48
2004.01.29
Загрузка процессора