Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизБольшой список строк Найти похожие ветки
← →
ИМХО (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c