Заметки

Обсуждения по русски

Moderators: Timur_75, nikolay_l

User avatar
nikolay_l
Posts: 511
Joined: Thu Dec 09, 2010 3:29 pm
Location: Россия, Крым, Севастополь
Contact:

Заметки

Post by nikolay_l »

В старой версии программы 4.1361 которой я пользуюсь (и которая распространяется вместе со сборкой) есть особенность - она не позволяет на лету корректно сохранять набор Библий для параллельного сравнения текстов. Насколько я понимаю лучше один раз определится с тем какие библии вам нужны, вывести их на окно Библии через глобальные настройки и дальше не трогать.
Это предотвратит сбои.

Далее. После создания набора надо перезапускать программу. По принципу - один набор - один перезапуск. Кажется что по другому программа не хочет корректно сохранять наборы.

Кроме того нельзя и сдвигать порядок библейских текстов.

Может быть эту проблему могло бы решить присвоение идентификаторов к русским и украинским Библиям. Но уверенности в этом нет. :mrgreen:
User avatar
nikolay_l
Posts: 511
Joined: Thu Dec 09, 2010 3:29 pm
Location: Россия, Крым, Севастополь
Contact:

Проблема запуска TW с большим числом модулей

Post by nikolay_l »

Сразу скажу, Костас об этой проблеме знает и ничего с ней сделать не может.
Суть проблемы в том что программа периодически проверяет хэш суммы модулей и когда процесс доходит до 2х Gb то начинают сыпать ошибки. Эта особенность проявляется при довольно большом числе модулей в программе - примерно от 2000. Явным образом ее можно вызвать переименовав каталоги с большим числом модулей.

Эту проблему удалось несколько смягчить сделав патч который увеличивает лимит на исполняемый процесс до 4-х Gb. Эта версия должна запускаться на ОС Windows х64. Однако на практике не стоит использовать Windows XP. Так как есть некие проблемы совместимости суть которых в том что поработав на XP x64 сборка может не запустится на XP x86. Эта проблема не критичная, и программу можно восстановить для работы. Но все же следует предпочитать другие ОС. В частности я все процедуры по реанимации проводил на Windows 7 x64. И потом без каких либо проблем переходил на ОС Windows XP x86 и работал со сборкой.
  • По сути процедура реанимации на Win XP x86 идентична процедуре на Win7 х64. За тем лишь исключением что платформа х64 допускает в 2 раза больше памяти для исполняемых 32-х разрядных процессов (по крайней мере для пропатченных соответствующим патчем), и соответственно сверка хешей пройдет у вас гораздо быстрее.
:!: Если вы заметили что программа заняла всю память и начинает сообщать об ошибках - надо убить процесс theWord через диспетчер задач.
(На самом деле так поступать надо всегда когда вы не хотите что бы программа сохранила изменения в файлах конфигурации) Так как программа сохраняет основные настройки только в момент выхода.

Процедура лечения связана с особенностью программы не замечать каталоги в именах которых содержится точка. Таким образом каталоги с точками не будут проверятся и вообще принимать участия в работе программы. Временное введение точки в имена крупных каталогов ("аргументация") позволит произвести безболезненно процедуру хеширования (сверки модулей) по частям. Однако эта процедура требует соблюдения нескольких условий.

1. у вас в программе должно быть активно по умолчанию (т.е. сразу после загрузки) окно в котором выбран набор "По тематической структуре" или его аналог (содержащий наибольшее число модулей). В моей сборке все доступные модули находятся в этом наборе. Если при построении будет открыт другой набор то программа начнет добавлять модули в это окно и процедура эта будет нереально долгой. Если вообще сможет завершится.

2. у вас в сборке не должно быть модулей которые не прописаны в этом наборе. Если они есть - их надо вынести за пределы сборки. Дело в том что программа сверяя суммы расставляет модули по свои местам и если она обнаружит нечто новое, - то у вас собьется набор. Появление любого нового модуля всегда выводит программу из режима выбранного набора. Как следствие программа не сможет и далее расставлять модули по полочкам. В общем надо будет убивать процесс theword.exe в диспетчере задач и выносить "левый" модуль из каталога с программой. Его можно будет вернуть после процедуры "реанимации".
  • Перефразирую : есть если вы заметили что у вас один файл добавляется 10-15 секунд и добавление происходит уже не в структуру библиотечного каталога (если окно маленькое то признаком сего может быть появившаяся стрелка >> ), то это значит что был какой-то косяк. Лучше всего сразу убить процесс theword-x.x.x.exe и зааргументировать каталоги которые по вашему мнению могли быть изменены. Если это известные вам файлы то можно вынести их за пределы сборки на время (а каталоги соответственно оставить готовыми для проверки).
3. у вас должны быть правильно прописаны пути к модулям в (текстовых) файлах module.cache.dat и config.ini (это связано с тем что при переходе на другую ОС буквы отвечающие за имена дисков меняются. И соответсвенно пути к файлам перестают совпадать. Кто часто работает с двумя ОС тот с этой проблемой хорошо знаком. Кроме того правка путей - обязательное условие для первого запуска сборки. Так как по умолчанию в этих файлах будут прописаны пути которые использовались в последний раз на моем компьютере (перед созданием раздачи на треккере).

Если у вас активно неподходящее книжное окно то надо убить процесс theword.exe в диспетчере задач и вручную поправить файл config.ini так что бы установить активным нужное окно, а если потребуется то переключить там-же набор модуля.
Книжное окно переключается цифрой в конце строки active.book.view=_book_view_1
Таким образом надо знать на каком окне у вас выставлен набор "По тематической структуре". Если подходящее окно окажется закрытым, то можно переключить набор модулей в любом другом активном книжном окне.

Процедура переключения набора модулей для книжного окна в файле config.ini несколько сложнее.
Надо найти ключ active.book.view=_book_view_ и уже с его помощью определяете какое книжное окно вам надо искать дальше (по цифре в конце). В общем копируете в поиск все что находится после знака = например _book_view_4
найдется строка (секция) [tlbx._book_view_4] листая эту секцию вниз увидите ключ bkv.layout=
в нем будет прописано название вашего текущего набора для этого окна. Что бы его изменить надо заменить название набора в этой строке. Если было

Code: Select all

bkv.layout=Библейские Комментарии
то должно стать

Code: Select all

bkv.layout=По тематической структуре.
Дальнейшие шаги по реанимации.
Лично я сначала полностью хэшировал каталог L а потом по частям каталог O.
Для этого надо перед названиями папок в каталоге TW/Dicts/О/ надо поставить точки. С этой процедурой возможно справятся не все программы. Лично я пользуюсь Directory Opus и с ним в этом отношении проблем не возникает. Переименование с помощью регулярных выражений должно выглядеть так:

Code: Select all

найти: (.*)
заменить .\1
После переименования запускаете TW и ждете пока она закончит сверку модулей. По завершении - обязательно её закрываете и дожидаетесь того момента когда процесс TW пропадет из Диспетчера задач. Ни в коем случае его не убиваете вручную - так как в это время идет запись параметров программы.

Далее удаляете точки с нескольких папок в каталоге TW/Dicts/О/ и полностью повторяете цикл описанный в предыдущем абзаце. При 2Gb ОЗУ можно до 700 модулей добавлять за раз на сверку (снимая точки с каталогов), их хэширование займет примерно пару минут. В целом процедура реанимации не должна занять более получаса.
Post Reply