Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2016, 14:31   #21
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Я не понимаю - чем все что описано отличается от ближайшей файловой системы?
Чисто внешне да, бинго! Внутренне я знаю очень поверхностно, фактически не знаю никак. С другой стороны хочу сказать, что в файловой системе не то чтобы прям много элементов - тормоза от 10000 элементов будут наверно. В моем случае число детей неизвестно и может быть теоретически больше 10 000.
Цитата:
Кстати, реальные имена (если они не для примера) лучше заменять на хэши - быстрее будет, хотя конечно все зависит от кучи факторов (в часности от длин имен и размера хэша).
Имена там пример, но суть верная - имена строки.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.06.2016 в 14:34.
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 14:49   #22
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

У меня на диске (NTFS) больше двух миллионов файлов - тормозов не замечаю, правда специальных бенчмарков не делал...

Почитайте организацию как-либо файловой системы по-новее (а то ФАТ конечно не айс) - наверняка натолкнет на идеи.

На худой конец, поэксперементируйте создавая все записи как реалные файлы на диске, тем паче, что все это можно завернуть на виртуальный диск и получить один файл где будет все храниться (говорю про виндовс, хотя наверняка и на лин есть подобное).
waleri вне форума Ответить с цитированием
Старый 21.06.2016, 15:00   #23
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
У меня на диске (NTFS) больше двух миллионов файлов
Ну они же не в одной папке накиданы, а вообще по диску. А вот конкретно в одну папку накидайте тысяч 20 файлов и попробуйте пооткрывать.
Цитата:
Почитайте организацию как-либо файловой системы по-новее (а то ФАТ конечно не айс) - наверняка натолкнет на идеи.
Да это тема, спасибо, свежий взгляд на проблему всегда полезен. Надо еще в линуксах посмотреть.
Цитата:
(говорю про виндовс, хотя наверняка и на лин есть подобное)
Там это штатная фича, можно шифровать на лету.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 15:10   #24
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Вы видите проблему или нет? Я дал конкретную задачу:
Есть 2 пути - источник Планета-Континенты-Европа-Москва, приемник Планета-Континенты-Австралия. Перенесите Москву в Австралию. Когда поэтапно будете это делать - увидите что мне не нравится.
Прекрасно вижу. Я всё это уже делал во многих вариантах. А вот вы пока ходите в потемках. Любую операцию можно сделать за T(1) :
и вставку, и удаление, и поиск, и индексный доступ, и обмен - но в разных коллекциях.
Какие-то коллекции можно скрестить, какие-то нельзя. Задачу надо рассматривать глобально, что бы найти оптимум для вашей задачи.
Если никакие критерии неизвестны, то берем Деревья-Б+ она для всех четырех операций дает O(Log(N)).

Чудес не бывает. Каждая коллекция имеет свои недостатки.

Файловые системы NFTS и EXT2, EXT3, EXT4 используют Деревья-Б+

Цитата:
А вот конкретно в одну папку накидайте тысяч 20 файлов и попробуйте пооткрывать.
У меня не тормозит. Особенно если своим файловым менеджером открывать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 21.06.2016, 15:15   #25
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Дайте мне пошагово для указанного выше примера. Все же просто. Мне нужен алгоритм, условия задачи выше. Использовать только указанную структуру деревьев, что указана в первом посте. Её физическая реализация в данном случае не важна.
Цитата:
Особенно если своим файловым менеджером открывать.
Мне вот и нужно знать как быстро открывать.
Цитата:
Файловые системы NFTS и EXT2, EXT3, EXT4 используют Деревья-Б+
Я вот глянул Reiser FS - почти тот же самый велосипед, что и мы изобретаем. Разница в том, что нужно как-то сортировать массив. Есть идеи? Проблема там описанная как раз показывает, что нужен внешний какой-то индексатор. Ровно то чего я хочу, помноженный на рецепт от evg_m.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.06.2016 в 15:33.
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 16:58   #26
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
 Nodes: Array of TSNode;// Набор узлов
Вот сразу написал, что надо делать на нижнем уровне.
Array выкинуть, это не деревья, заменить за самоупорядочивающееся древовидное строение (аля map на красно-черных деревьях там есть, или обертка или переписано по STL).
http://wiki.freepascal.org/Data_Stru...s,_Collections
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 22.06.2016 в 07:57.
MihalNik вне форума Ответить с цитированием
Старый 21.06.2016, 17:15   #27
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
По умолчанию

полюбопытствую, а зачем вся эта морока с массивам, узлами да рекурсиями? Ведь можно sql-ем сделать. Уткин, пишите кому-то дипломную, или просто решили поэкспериментировать?
oldsnowman вне форума Ответить с цитированием
Старый 21.06.2016, 18:12   #28
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Это эксперимент. Я хочу язык программирования, в котором все переменные будут только динамическими деревьями.
Цитата:
Ведь можно sql-ем сделать.
Никто от БД не отказывается, речь об обычных программных данных - массивы, списки, записи и т.д.
Цитата:
Array выкинуть, это не деревья, заменить за самоупорядывающееся древовидное строение
Там внутри тоже Array - ОЗУ все равно линейно и рано или поздно кто-то должен начать оборачивать массив во что-то высокоинтеллектуальное.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.06.2016 в 18:15.
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 19:16   #29
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Там внутри тоже Array - ОЗУ все равно линейно и рано или поздно кто-то должен начать оборачивать массив во что-то высокоинтеллектуальное.
Там уже есть коллекции с временем поиска, вставки и удаления окололинейно log(N).
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 22.06.2016 в 08:00.
MihalNik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от запроса доступа к внешним данным Loshara Microsoft Office Excel 0 29.07.2015 14:13
Страницы доступа к данным Jimmy Lenox Microsoft Office Access 0 19.10.2012 15:12
страницы доступа к данным... AGhost Microsoft Office Access 3 21.05.2010 23:05
Создание класс с использованием методов доступа к данным El_Bint0 Помощь студентам 1 14.03.2007 10:16