ZebroidФорумПубличный разделВопросыИмпорт текстов большого объема в режиме большой проект

Импорт текстов большого объема в режиме большой проект

02 июля 2013, 10:28
Зарегистрирован: 29 мая 2012, 13:12
Я пытаюсь делать импорт большого числа текстов в проект, открыты в режиме «Большой проект», но к сожалению встречаю там ту же самую ошибку, что и при импорте в обычный — ругань на нехватку памяти.
Очень прошу исправить эту ошибку, чтоб после импорта текста в режиме «Большой проект», он сохранялся на диск и выкидывался из памяти.

Конечно, я понимаю, что можно разбивать все на части и тд. Это вполне нормальное решение для мелких сайтов и сателлитов. Но если требуется делать большой и серьезный СДЛ, то к сожалению эти костыли очень затрудняют работу.

02 июля 2013, 11:39
Зарегистрирован: 10 апреля 2012, 00:00
В режиме «Большой проект» Зеброид использует не винтечестер, а виртуальную память. В зависимости от того, как настроен ваша ОС, предоставляемая программе память может быть как на ОЗУ, так и на HD. Если программа пишет, что ей не достаточно памяти, значит ОС ей не даёт больше памяти и это не баг программы. Нельзя получить больше того, чего нету либо чего не дают.

Делать тип проекта, где используется только винтчестер я не буду. У меня была попытка такое сделать и результаты тестов были очень печальными: скорость работы крайне медленная. Вы не будете создавать проекты, в которых обычная замена в текстах длится сутки.

02 июля 2013, 12:22
Зарегистрирован: 29 мая 2012, 13:12
Тогда теряется весь смысл функционала «Большой проект».
Я не считаю, что для импорта файлов 10G ОС нужно предоставить 10G оперативной памяти. По крайней мере перед тем как покупать эту программу я не нашел на сайте подобных ограничений.

Кроме того, замену текстам можно сделать в другом редакторе. Зеброид мне нужен для экспорта текстов в CMS.
В конце концов, если вы уже пробовали такое сделать — то доведите работу до конца. Кому нужно делать большые СДЛ на сотни тысяч страниц — подождут неделю-другую. Учитывая, что без Зеброида на такой сайт ушли бы 3-4 года при ручной работе.

02 июля 2013, 12:43
Зарегистрирован: 10 апреля 2012, 00:00
Тогда теряется весь смысл функционала «Большой проект».

С чего вы взяли? Обычный проект работает в адресном пространстве предоставленном ОС, для 32-битных программ это максимум 2 Гб, на деле не больше 1,5 Гб из-за фрагментации. Большой проект, при наличии достаточного количества виртуальной памяти увеличивает этот порог в несколько раз. Где тут отсутствие смысла?

Я не считаю, что для импорта файлов 10G ОС нужно предоставить 10G оперативной памяти.

Виртуальная память — это оперативная память + файлы подкачки, а не только оперативная. Еще раз: программа получает в своё распоряжение ровно столько, сколько ей выделяет ОС.

По крайней мере перед тем как покупать эту программу я не нашел на сайте подобных ограничений.

Есть демо версия, можно было проверить перед покупкой, если для вас это был критический момент. Мне нету смысла расписывать все аспекты работы с программой, их слишком много. К тому это не искусственное ограничение программы. Будь на вашем компьютере достаточное количество ресурсов, программа бы не выдавала такую ошибку.

Кроме того, замену текстам можно сделать в другом редакторе.
Помимо замены есть еще несколько десятков других инструментов для массовой обработки текстов, которые будут с винчестером работать так же медленно. Я еще раз повторяю: никто не будет работать с программой в таком режиме, он очень медленный, я не зря проводил тесты.

Зеброид мне нужен для экспорта текстов в CMS.
Ну если так, то пакетное создание проектов + капля-макрос + обработка нескольких процессов полностью решает вашу проблему.

В конце концов, если вы уже пробовали такое сделать — то доведите работу до конца. Кому нужно делать большые СДЛ на сотни тысяч страниц — подождут неделю-другую. Учитывая, что без Зеброида на такой сайт ушли бы 3-4 года при ручной работе.

Я не буду тратить время на реализацию функционала, которым никто не будет пользоваться. Если хотите — выносите предложение на голосование, будет в топе — сделаю. Но я рекомендую пользоваться способом описанным выше, это будет в разы быстрее, чем при работе с винтчестером.

02 июля 2013, 12:50
Зарегистрирован: 29 мая 2012, 13:12
Проблема в том, что происходит сбой с ошибкой о нехватки памяти в то время, как ОС не задействует более 300mb файла подкачки, хотя в наличие там 3G.

02 июля 2013, 15:43
Зарегистрирован: 10 апреля 2012, 00:00
Попробую объяснить процесс: во время того, как программа создаёт или изменяет текст записи, она просит в ОС выделить под размер этой записи участок памяти, на что ОС отвечает либо «да, вот держите», либо «извините, ничем помочь не могу». Программа в свою очередь транслирует ошибку нехватки памяти пользователю (если такова возникла). По какой причине ОС может не дать приложение память я не знаю, может есть и другие критерии, кроме свободных ресурсов.

Лично я успешно тестировал создание 6 Гб проекта при 4 Гб оперативной памяти. Могу попробовать еще раз провести этот тест, но не думаю что что-то за это время поменялось, я с того момента в кодах организации записей ничего не менял.

Комментарий отредактирован 1 раз(а). Последний раз редактировал admin 02 июля 2013, 15:44.
02 июля 2013, 16:08
Зарегистрирован: 10 апреля 2012, 00:00
Проверил: импортировал файлы больших размеров в количестве, которое заведомо превышает количество оперативной памяти + файлов подкачки. Пока места на диске хватало, импорт еще продолжался. Как только на диске «C» осталось меньше 500 Мб — ОС отклонила мои запросы:



До начала импорта на диске «C» было 4 Гб свободного места. Успешно импортировалось 325 файлов по 10 Мб в кодировке ANSI, сумарно это 3250 Мб. В памяти они хранятся в UNICODE, значит сумарный объем можно смело умножать на 2, итого получается 6,5 Гб в памяти, при наличии 4 Гб оперативки. Из этих 4 Гб оперативки, система себе оставляет 2 Гб и никому её не отдаёт, а значит ушло 2 Гб оперативки и 4 Гб из файлов подкачки. Почему диспетчер показывает, что использовано только 1,4 Гб оперативки я не знаю, но на диске «C» точно не было больше места, а значит всё, что свыше 4 Гб должно было хранится в оперативной памяти.

В любом случае система отработала именно так, как ожидалось. Если освободить место на диске «C» и увеличить размер файлов подкачки, то можно было бы импортировать еще больше данных.




Update: Освободил место на диске, немного оптимизировал процесс и успешно импортировал все 640 файлов.

Комментарий отредактирован 2 раз(а). Последний раз редактировал admin 02 июля 2013, 16:53. Причина: Добавил
02 июля 2013, 16:13
Зарегистрирован: 29 мая 2012, 13:12
Но у меня возникает совершенно другая ошибка!
А не такая как на картинке.

После этой ошибки программу можно только закрыть или рестартовать.

02 июля 2013, 16:26
Зарегистрирован: 10 апреля 2012, 00:00
Что за ошибка?

04 июля 2013, 08:47
Зарегистрирован: 29 мая 2012, 13:12

Вот такая — 40% работы и программа закрывается/рестартует
То есть нет возможности сохранить то, что было сделано за эти 40%

А у вас на скриншоте совершенно другая ошибка, после которой программа может работать