Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбор структуры для хранения данных


Страницы:   1 2 3

LDV ©   (2010-10-15 10:39:00) 

В программе анализируются файлы. По каждому из файлов нужно ВРЕМЕННО хранить данные (FileName, Ver, Size, CRC). Какую структуру грамотнее всего использовать для хранения этих данных?

1. TStringList.AddObject(FileName, TMyObject.Create(Ver, Size, CRC);
2. Наследник TList.Add(FileName, Ver, Size, CRC);
3. XML
4. другие варианы


QAZ   (2010-10-15 12:22:00) [21]

Удалено модератором


DVM   (2010-10-15 12:21:00) [22]

вот что вышло у меня (результаты в микросекундах), после заполнения списка происходит 1000 000 случайных обращений к его элементам.

Время сканирования: 7426958
Всего файлов: 56179
Время обращения: 31701

Время сканирования: 7383852
Всего файлов: 56178
Время обращения: 33705

Время сканирования: 7050182
Всего файлов: 56178
Время обращения: 31768


sniknik   (2010-10-15 12:20:00) [23]

> Ну типа не фиг тут панацею пропагандировать, а там глядишь, и бодаться не придеться.
+1


sniknik   (2010-10-15 12:19:00) [24]

> а вот если бы было написано "хранить структуру каталогов"
интереснее было бы если бы объединить т.е. "структуру каталогов с данными по файлам"...
вот тут неоднозначно, т.к. у меня например есть каталоги(логи) где по 20 тыс файлов за день... т.е. собрать все вместе в xml и он не выдержит (500 мг, уже с трудом, а гиг стандартный DOM документ уже не держит).
скорее всего бы разбил на 2, структуру в xml, а данные по файлам все таки в рекордсет, только добавил бы поле "хеш пути" по которому определял бы положение файда в каталоге.
а вот если бы нужно было хранить в базе, то преобразовал бы каталог в "дерево".

в общем все от задачи и данных зависит, а не от "крутизны технологии". может ему по задаче и стринглиста "за глаза"...


DVM   (2010-10-15 12:19:00) [25]


> Медвежонок Пятачок ©   (15.10.10 11:25) [15]

http://narod.ru/disk/26127027000/XMLvsList.zip.html


Palladin   (2010-10-15 12:12:00) [26]


> Ну типа я голосуя за 3 не предполагал, что эта пятница уйдет
> на бодание со всеми вами в одиночку

Ну типа не фиг тут панацею пропагандировать, а там глядишь, и бодаться не придеться.


Медвежонок Пятачок   (2010-10-15 12:11:00) [27]

ну если зависит от данных, а данные у нас по своей природе "деревянные", то xml здесь будет наиболее органично моделировать предметы реального мира (файлы)


sniknik   (2010-10-15 11:59:00) [28]

а чего бодаться? зависит от данных...
написано - хранить данные (FileName, Ver, Size, CRC)
т.е. строка на каждую запись, табличная структура, значит однозначно что-то типа таблицы в памяти, xml тут будет "перебор".
а вот если бы было написано "хранить структуру каталогов", т.е. данные неопределенной вложенности\структуры то я сам бы выбрал xml (ну или json, смотря на чем и для чего делал бы...)


Медвежонок Пятачок   (2010-10-15 11:49:00) [29]

Ну типа я голосуя за 3 не предполагал, что эта пятница уйдет на бодание со всеми вами в одиночку


sniknik   (2010-10-15 11:41:00) [30]

> Я когда писал ответ, подумал, ща придет медвежонок и его ответ будет однозначен :)
аналогично.

> TClientDataSet/TMemTable
TADODataset


Медвежонок Пятачок   (2010-10-15 11:25:00) [31]

Ок


DVM   (2010-10-15 11:24:00) [32]


> Медвежонок Пятачок ©   (15.10.10 11:19) [13]

ну давай, я ща набросаю вариант с TList и выложу сюда, процедуры скана папки и т.д. одинаковые будут думаю, чтоб точнее сравнение было. А ты переделай на XML. Счетчик тоже сделаю.


Медвежонок Пятачок   (2010-10-15 11:19:00) [33]

не совсем понял, время на программирование что ли?

Ага


Плохиш   (2010-10-15 11:16:00) [34]


> DVM ©   (15.10.10 11:08) [9]


> Медвежонок Пятачок ©   (15.10.10 11:12) [10]

Пацаны, у слона всё-равно длиннее.


DVM   (2010-10-15 11:15:00) [35]


> только в сравнении давай еще учтем время на  реализацию
> самой задачи.

не совсем понял, время на программирование что ли?


Медвежонок Пятачок   (2010-10-15 11:12:00) [36]

да легко.
только в сравнении давай еще учтем время на  реализацию самой задачи.


DVM   (2010-10-15 11:08:00) [37]


> Медвежонок Пятачок ©   (15.10.10 10:59) [8]

А давай может сравним, если есть время? Тебе, как евангелисту от XML, думаю тоже будет интересно.

Суть сравнения:
1) Добавляем в списки инфу о всех файлах и папках (в т.ч. и вложенных) папки Windows. Замеряем время.
2) Делаем выборку 1000 произвольных записей. Замеряем время.

Ну еще и потребности памяти можно замерить.

Сравнивать будем XML vs TList


Медвежонок Пятачок   (2010-10-15 10:59:00) [38]

а как там со скоростью?

Со скоростью там все очень быстро


Плохиш   (2010-10-15 10:54:00) [39]


> По каждому из файлов нужно ВРЕМЕННОхранить данные (FileName,
>  Ver, Size, CRC). Какую структуру грамотнее всего использовать
> для хранения этих данных?

TClientDataSet/TMemTable


DVM   (2010-10-15 10:49:00) [40]


> Медвежонок Пятачок ©   (15.10.10 10:47) [4]

а как там со скоростью?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо