Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: NTFS Links - обсуждение 
Author Message
CaptainFlint



PostPosted: Sat Oct 08, 2011 23:40    Post subject: Reply with quote

MVV
Да, я уже думал о построении списка. Это решает проблему, но создаёт другую: потенциально нехилое потребление памяти. Если обход идёт в потоковом режиме, то программа может обрабатывать произвольное число объектов без существенного увеличения требуемой памяти (потребление пропорционально всего лишь максимальному уровню рекурсии). Если же заранее создавать список, то занимаемая память становится пропорциональной числу объектов.

Можно прикинуть. Например, у меня сейчас в XP в папке Windows 50 тысяч файлов. Суммарное число символов в путях: 3,3 млн, т.е. 6,6 Мб. Плюс для каждого объекта надо хранить ещё целевой путь, т.е. примерно вдвое больше — 13 Мб. Плюс накладные расходы аллокатора… В общем, мегабайт 20 на одних только путях, а есть ещё и другие данные. Ну а в виртуальной Семёрке файлов уже 113 тысяч, и пути подлиннее, суммарная длина 14,5 млн символов. Соответственно, выходит уже памяти на ~90 Мб. А уж если кто-то, не дай Бог, решит Program Files склонировать на хорошенько обустроенной системе…

Возможно, всё-таки получится сделать потоковый вариант, в котором при любой ошибке доступа прога будет обращаться за тем же действием к повышенному помощнику. Конечно, ещё вопрос производительности встанет, т.к. я пока ещё слабо представляю, с какой скоростью данные перегоняются через пайп… В общем, думаю, прикидываю, соображаю.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
View user's profile Send private message Visit poster's website


Powered by phpBB © 2001, 2005 phpBB Group