Обсуждение работы программы
| |
drserj | Дата: Вторник, 06.10.2015, 20:44 | Сообщение # 676 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата vsv13579 ( ) А зачем??? зачем сканировать папки с книгами при каждом обращении к базе, если все данные по книгам есть в базе? Когда библиотека одна и лежит в одном месте - кажется, что незачем... Однако, только у меня их 3... И мест хранения несколько.... и меняется всё на ходу.... Нельзя всё держать в памяти... Тем более, динамически изменяемое в любой момент времени. Нет, я понимаю, можно всё это попытаться ужать, ограничить... Но теряется универсальность, появляется привязанность к конкретным местам, а народ просил от этого избавить. За универсальность приходится расплачиваться. Вот с форматом md5, действительно, неувязочка... Не подумал... Но и там будут некоторые проблемы.... Вот, казалось бы, самая простая часть программы - частная коллекция... Ан нет, куча вопросов. И вся беда в том, что это самая мало восстребованная, а потому, самая непродуманная часть программы
Цитата vsv13579 ( ) "база" это файл/ы в папке программы, так? В какой-то степени. Если быть точнее, база - это файлы в каталоге data... Если еще точнее, там файлы базы.
drSerj
|
|
| |
vsv13579 | Дата: Вторник, 06.10.2015, 20:58 | Сообщение # 677 |
Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Offline
| Цитата Когда библиотека одна и лежит в одном месте - кажется, что незачем... Однако, только у меня их 3... И мест хранения несколько.... и меняется всё на ходу.... Мы все еще говорим про частную коллекцию. Какая разница сколько библиотек? Что меняется на ходу? Если появились новые книги, появилось обновление или я решил перенести часть книг в другую папку. Соответственно необходимо заново просканировать то что изменилось.
Иначе зачем все сканировать опять? Мне кажется это логичным.
Аналогия. Есть playlist. Один раз отсканировали. Потом пользуемся ссылками. Если что-то в "хранилище" изменилось, то программа выдаст ошибку. Есть autoplaylist. Сканирование идет постоянно. Изменения в "хранилище" постоянно обновляются.
Как я понимаю у Вас реализован второй вариант. Так? Почему не добавить возможность использования первого варианта?
|
|
| |
drserj | Дата: Среда, 07.10.2015, 08:20 | Сообщение # 678 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата vsv13579 ( ) Мы все еще говорим про частную коллекцию. Какая разница сколько библиотек? Что меняется на ходу? Мы всё еще говорим про программу, в которой частная коллекция - одна из не самых больших частей. В программе одновременно могут быть много библиотек, причем, многие формы (такие как поиск, группы и т д) работают параллельно со всеми имеющимися библиотеками. Именно по этому каждый раз информация о книге ищется наново. Держать данные о всех библиотеках в памяти не по карману многим. Если данные программы свалятся в свап - будет еще значительно медленнее.
Цитата vsv13579 ( ) Если появились новые книги, появилось обновление или я решил перенести часть книг в другую папку. Соответственно необходимо заново просканировать то что изменилось.
Стесняюсь спросить, как программа узнает сама об изменениях?
Цитата vsv13579 ( ) Как я понимаю у Вас реализован второй вариант. Так?
практически да
Цитата vsv13579 ( ) Почему не добавить возможность использования первого варианта?
см. выше
Для подобных проблем было предусмотрено отключение вывода обложки и аннотации. Получить эту информацию можно в окне "Информация о книге", которое вызывается горячей клавишей или из всплывающего меню. Кстати, опция показывать обложку и аннотацию автоматически в главном окне появилась значительно позже, именно для тех, у кого скорости позволяют.
drSerj
|
|
| |
vsv13579 | Дата: Среда, 07.10.2015, 18:47 | Сообщение # 679 |
Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Offline
| Цитата В программе одновременно могут быть много библиотек, причем, многие формы (такие как поиск, группы и т д) работают параллельно со всеми имеющимися библиотеками. Не подскажите основные принципы работы с остальными библиотеками? Или - где можно почитать про это?
Цитата Держать данные о всех библиотеках в памяти не по карману многим. Если данные программы свалятся в свап - будет еще значительно медленнее. Никто не говорит, что надо держать в памяти. Речь о том чтобы держать данные в папке data. Вся папка data всегда находится в памяти?
Извините, но еще раз: при выборе книге в программе(указании на нее) вся информация(путь к файлу, автор, название, аннотация, обложка и т.д.) читается из data(она там есть, так?) и читается еще раз из файла=книги, так?
или берется вся информация из data(кроме пути?) и ищется во всех указанных папках эта книга и после нахождения, читается опять та жа инфа из файла=книги. Ну ведь не логично же. Хм, или я чего-то не понимаю (((
Цитата Стесняюсь спросить, как программа узнает сама об изменениях? Кто сказал, что сама? Я говорил, что если что-то изменилось в папке, то надо эту папку еще раз просканировать "ручками". В конце концов при выборе папок можно указать "тип" папки: содержимое этой папки может меняться и ее надо "отслеживать" автоматом, а содержимое этой папки всегда постоянно(если нужно - ее можно просканировать вручную).
|
|
| |
drserj | Дата: Среда, 07.10.2015, 20:13 | Сообщение # 680 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Не подскажите основные принципы работы с остальными библиотеками? Зачем? Чем это Вам поможет решить проблему? Только запутаетесь.
Цитата vsv13579 ( ) Или - где можно почитать про это? Что-то в хелпе, что-то в литературе по программированию...
Цитата vsv13579 ( ) Никто не говорит, что надо держать в памяти. Речь о том чтобы держать данные в папке data.
Господи... но оно там и лежит... Что не так-то?
Цитата vsv13579 ( ) Вся папка data всегда находится в памяти?
Я что, знаю как и где mysql сервер держит данные? Это к программистам Оракла, плз...
Цитата vsv13579 ( ) Извините, но еще раз: при выборе книге в программе(указании на нее) вся информация(путь к файлу, автор, название, аннотация, обложка и т.д.) читается из data(она там есть, так?) и читается еще раз из файла=книги, так?
Еще раз - нет. Есть всё перечисленное, кроме пути к файлу. Путём обсуждения выбрали структуру, в которой информация о файле (кроме названия) не привязана к данным в базе. Люди предпочли "портейбл"-вариант.
Цитата vsv13579 ( ) или берется вся информация из data(кроме пути?) и ищется во всех указанных папках эта книга и после нахождения, читается опять та жа инфа из файла=книги. Ну ведь не логично же. Хм, или я чего-то не понимаю (((
скорее всего, чего-то не понимаете У вас мухи и котлеты вместе смешались. Вы пытаетесь объединить информацию о книге с информацией о файле. Это несколько разные понятия.
Последний раз объясняю ситуацию. В базе хранится имя файла и имя архива. В настройках указываются возможные пути, где могут находиться книги. В базе нет пути к книге. Алгоритм работы программы следующий:
1. Получаем из базы имя архива и файла 2. Если в базе картинка и аннотация - гуд, выводим. 3. Если нет - по очереди проходим по всем каталогам, где находятся книги (создается список всех файлов в каталоге с подкаталогами) и ищем файл. 4. Нашли - ок. распаковываем файл во временный каталог, загружаем текст книги, вычленяем оттуда картинку, аннотацию.
Это действие происходит каждый раз, как мы переходим с одной записи в таблице на другую. Именно по этому, при каждом переходе на другую книгу в таблице, мы ищем файл и работаем с ним.
Причина тормозов - именно сканирование (и передача инфы по сетке, но совсем цуть-цуть, если сетка тормозная). А сканировать приходится из-за того, что держать все списки файлов в памяти - не есть хорошо, это может вызвать значительно большие тормоза программы. Да и как я уже говорил, актуальность списка - до очередного изменения.
Цитата vsv13579 ( ) Кто сказал, что сама? Я говорил, что если что-то изменилось в папке, то надо эту папку еще раз просканировать "ручками".
????? Я постесняюсь такое даже предложить пользователю... Ручками пересканивать? Увольте... Проще книжки на листочек переписать
Цитата vsv13579 ( ) В конце концов при выборе папок можно указать "тип" папки: содержимое этой папки может меняться и ее надо "отслеживать" автоматом, а содержимое этой папки всегда постоянно(если нужно - ее можно просканировать вручную). Зачем? Не проще ли решить проблему более цивилизованным путем? Нет, я не предлагаю купить нормальный НАС, это не всегда спасает. А вот с способом хранения, структурой библиотеки, структурой каталогов - да, можно поработать. Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы, но, общаясь с людьми, которые использовали этот модуль для приватных библиотек, они не хотели изменять местоположение и имена файлов. Так что до сегодняшнего дня этой проблемы совсем не было. Если вопрос станет ребром - я постараюсь добавить работу с фиксированным форматом.
А Вы попробуйте, всё-таки, добавьте картинки и описание в базу. Возможно проблема сама исчезнет.
Есть еще одна идея. Указать не корневой каталог, где лежат подкаталоги с книгами, а именно все подкаталоги. По идее, не потребуется пересканирование всех подкаталогов... Ну, если книга лежит не в последних...
drSerj
|
|
| |
PFN | Дата: Четверг, 08.10.2015, 11:10 | Сообщение # 681 |
Генерал-майор
Группа: Друзья
Сообщений: 206
Статус: Offline
| Цитата drserj ( ) Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы Здравствуйте, drserj!
Один вопрос по MD5, в котором я почти полный ноль. Если я правильно понял из прочитанной литературы, этот код формируется путем обработки строки. Исходя из того, что МД5 при формировании и пополнении библиотеки участвует в отборе дубликатов книг, я предполагаю, что программа формирует этот код из всего текста книги. Правильно ли я это понимаю?
=============================== Приказ, который может быть понят неправильно, обязательно будет понят неправильно
|
|
| |
drserj | Дата: Четверг, 08.10.2015, 12:46 | Сообщение # 682 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата PFN ( ) Здравствуйте, drserj! И снова здравствуйте
Цитата PFN ( ) программа формирует этот код из всего текста книги. Правильно ли я это понимаю?
абсолютно верно.
drSerj
|
|
| |
PFN | Дата: Четверг, 08.10.2015, 15:54 | Сообщение # 683 |
Генерал-майор
Группа: Друзья
Сообщений: 206
Статус: Offline
| Цитата drserj ( ) И снова здравствуйте Я с большим удовольствием желаю Вам ЗДРАВИЯ!
Цитата drserj ( ) абсолютно верно. Спасибо!
=============================== Приказ, который может быть понят неправильно, обязательно будет понят неправильно
|
|
| |
drserj | Дата: Четверг, 08.10.2015, 16:23 | Сообщение # 684 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата PFN ( ) Спасибо! Всегда пожалуйста
drSerj
|
|
| |
1_абрам | Дата: Понедельник, 12.10.2015, 15:08 | Сообщение # 685 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Цитата drserj ( ) Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы, но, общаясь с людьми, которые использовали этот модуль для приватных библиотек, они не хотели изменять местоположение и имена файлов. Так что до сегодняшнего дня этой проблемы совсем не было. Если вопрос станет ребром - я постараюсь добавить работу с фиксированным форматом.
Думаю, что добавление %Z для приватных библиотек было бы логичным. А имеет ли смысл использовать форматы типа %a\%Z ? Будет ли при этом выигрыш в скорости?
|
|
| |
drserj | Дата: Понедельник, 12.10.2015, 20:29 | Сообщение # 686 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата 1_абрам ( ) А имеет ли смысл использовать форматы типа %a\%Z ? Будет ли при этом выигрыш в скорости? будет только потеря...
drSerj
|
|
| |
mmc | Дата: Среда, 21.10.2015, 04:14 | Сообщение # 687 |
Рядовой
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Где Взять нормальных прокси?
|
|
| |
drserj | Дата: Среда, 21.10.2015, 20:42 | Сообщение # 688 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата mmc ( ) Где Взять нормальных прокси? Явно не тут.
drSerj
|
|
| |
sergtch | Дата: Суббота, 24.10.2015, 17:55 | Сообщение # 689 |
Рядовой
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Добрый вечер.
"Поигрался" я тут я md5 системой. Мои выводы (для меня): при моем размере локальной библиотеки (~ 5000) разница в скоростьи несущественна. Но появилось неудобство: в процессе чтения я исправляю замеченные ошибки, а значит файл каждый раз оказывается с разным именем и в другом каталоге и становится дубликатом, значит надо за всемэтим следить ну и т.д.
Но это так, к слову.
А вопрос вот в чем, при обработке, некоторые книги недобавляются с пометкой "ошибка добавления в базу". Так вот как узнать, что-же в файле явилось этой ошибкой?
С уважением, Сергей.
|
|
| |
drserj | Дата: Суббота, 24.10.2015, 18:23 | Сообщение # 690 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата sergtch ( ) при моем размере локальной библиотеки (~ 5000) разница в скоростьи несущественна Абсолютно. Разница начнет ощущаться на десятках тысяч, и то, сильно зависит от мощности компа, скорости и фрагментации диска. Да и не работает это в приватной библиотеке, насколько я помню.
Цитата sergtch ( ) в процессе чтения я исправляю замеченные ошибки, а значит файл каждый раз оказывается с разным именем и в другом каталоге и становится дубликатом, значит надо за всемэтим следить ну и т.д.
Ну я бы сначала обработал все те, которые без ошибок, а затем уже очистил сканы и наново просканерил и обработал.... Тут действительно, расчет на "правильные" файлы....
Цитата sergtch ( ) А вопрос вот в чем, при обработке, некоторые книги недобавляются с пометкой "ошибка добавления в базу". Так вот как узнать, что-же в файле явилось этой ошибкой?
Смотреть конкретные случаи надо. Вероятнее всего либо информация о файле отсутствует, либо ее недостаточно. А может и с самим файлом проблема. Если очень важно - пришлите файл, я попробую проанализировать причину...
drSerj
|
|
| |
|