Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
14-93681
Knight
2004-01-06 21:18
2004.01.29
А что в mpeg-ах?


3-93393
Centurion
2003-12-30 13:48
2004.01.29
Прерывание запросов


8-93589
Дмитрий В. Белькевич
2003-09-03 17:48
2004.01.29
Как из TBitmap вытащить plain data


6-93613
strong
2003-11-24 13:57
2004.01.29
проблема com/ip


14-93629
Magician
2004-01-02 11:04
2004.01.29
документация по написанию драйверов под Win2k





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский