CAEman
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору JFK2005 Цитата: Скачал отсюда Multitran 2012. Сейчас попробую залить его в телефон и проиндексировать. | При индексировании этих Мультитранов использование памяти процессом goldendict было следующим: En-Ru 1,3ГБ (но если после Ru-En подряд, то- 2,8ГБ) Ru-En 2,6ГБ Добавлено: Tvangeste Цитата: Тогда попробуйте еще вот что, запустите максимально возможное число словарей, чтобы GoldenDict еще не падал. Потом вот такая команда: Код: lsof -p `pgrep goldendict` | wc -l Она покажет сколько открыто файлов процессом goldendict. По идее должно быть около 200 + 2 * количество_словарей. Получиться в вашем случае должно около 2500 открытых файлов. А вот почему дальше не дает - это большой вопрос. Попробуйте еще раз в своей системе увеличить количество открытых файлов до 20 тыщ, например, для пробы. | Вначале немного истории: Цитата: Посмотрел в Системном мониторе PID процесса goldendict: Цитата: > lsof -p 11989 | wc -l 113 | Таким образом, количество используемых свёрнутым в значок в Системном лотке GD файлов без словарей составило 113. Затем открыл окно словари: Цитата: > lsof -p 11989 | wc -l 111 | Далее скидывал в путь для поиска словарей по 1000 Ваших "словарей", нажимал кнопку Пересканировать и запускал выше указанную команду, получая следующий её вывод: Цитата: Вышел из программы и запустил её снова: она запустилась, но забивала ядро процессора в режиме системы. Когда я попытался запустить окно Словари, то программа вылетела, выдав на консоль: Цитата: Убрал все словари и добавил по новой по 1000шт. 2000 словарей. Вышел из программы и запустил её вновь. Она не запустилась, выдав на консоль: Цитата: > ./AppRun Load done getResource: gdlookup://localhost?blank=1 scheme: gdlookup host: localhost getResource: gdlookup://localhost?blank=1 scheme: gdlookup host: localhost getResource: gdlookup://localhost?word=Добро пожаловать!&group=4294967295 scheme: gdlookup host: localhost In-place finish. Ошибка сегментирования | Удалил все словари и запустил программу. Стал добавлять по 1000 словарей с пересканированием в окне Словари. Соответствующий вывод команды: Цитата: После следующих 1000 словарей программа, естественно, вылетела со следующим выводом на консоль: Цитата: GoldenDict (dictzip.c): Cannot open data file ".../3/test-3166.dsl" for read dictzip.c: Слишком много открытых файлов GoldenDict (dictzip.c): Cannot open data file ".../3/test-3167.dsl" for read dictzip.c: Слишком много открытых файлов | (Уж не знаю, почему 3166 и 3167, если последний раз добавил 4ххх). Сделал скрипт запуска программы 65536.run следующего содержания: Цитата: #! /bin/sh # # ulimit -Sn 65536 ulimit -a ./AppRun | Удалил все словари и запустил скрипт. Вывод на консоли запуска скрипта: Цитата: > ./65536.run core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 139264 max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 65536 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 139264 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Load done getResource: gdlookup://localhost?blank=1 scheme: gdlookup host: localhost getResource: gdlookup://localhost?blank=1 scheme: gdlookup host: localhost getResource: gdlookup://localhost?word=Добро пожаловать!&group=4294967295 scheme: gdlookup host: localhost In-place finish. ====reading 57045 bytes | Стал добавлять по 1000 словарей с пересканированием в окне Словари. Соответствующий вывод команды: Цитата: 2112 4120 6120 8120 10120 12120 14120 16120 18120 20120 | Нажал кнопку ОК окна Словари. Вывел статью card-9999. Закрыл окно (в значок в системном лотке). Открыл окно (щёлкнув не по значку в лотке, а запуска программы, так как тестировал последнюю портативную сборку с ранее упомянутым появившимся багом). Всё работает. Вышел из программы. Запустил скрипт снова: программа загрузилась. Вывел статью card-9999. Оключил все словари (сняв рекурсивность), пересканировал и нажал ОК. Подключил все словари (поставив рекурсивность), пересканировал и нажал ОК. Всё работает. Но потом попробовал добавить все словари через Ctrl+F5: программа вылетела и не запускалась всё с теми же ошибками сегментирования. После же удаления всех словарей и последующего добавления всех их пересканированием в окне Словарей программа опять вылетела после нажатия ОК, но потом запустилась. После изменения системных настроек на предел 65536 программа запустилась из автозагрузки. Но после выхода из программы повторно запустилась только пару раз из десятка попыток (всё та же пресловутая Ошибка сегментирования). И после перезагрузки комп-а не автозагрузилась. Удалил все словари, запустил программу, добавил обратно и пересканировал. Всё работает. Перезагрузил комп.- не автозагрузилась. Оставил 4000 словарей и перезагрузил комп.- автозагрузилась. Переделал системные настройки на оба предела 8192 и перезагрузил комп.- не автозагрузилась и не запускалась. Переделал настройки на 65536. Удалил словари и добавил по 1000 с пересканированием до 4000. Перезагрузил комп.- автозагрузилась, но с забивкой 1 ядра в режиме системы. После выхода из программы запустилась нормально. После перезагрузки комп-а- опять с забивкой ядра (перезапуском уже неустраняемой). Работает без проблем только когда 1 папка (1000 словарей). ВЫВОД: назвать это стабильной работой GoldenDict никак нельзя... ДЛЯ СРАВНЕНИЯ. Сконвертировал Ваши словари в IFO формат. Подключил к StarDict 2000 словарей (у этой программы подключение может происходить только при её запуске). Вывод команды: 12176. Перезапустил программу. Вывод команды: 12176. Перезагрузил комп. Вывод команды: 12180. Перезапустил программу. Вывод команды: 12176. Подключил все 10000 словарей. Вывод команды: 60176. Нашёл статью card-9999. Перезагрузил комп. Вывод команды: 60179. Перезапустил программу Вывод команды: 60177. Нашёл статью card-9999. ВЫВОД: это называется стабильная работа StarDict... | Всего записей: 255 | Зарегистр. 11-02-2012 | Отправлено: 10:53 30-03-2013 | Исправлено: CAEman, 11:26 30-03-2013 |
|