[ID CC-CC2021] Торможение при выделении объемных текстов

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
Привет!
Иногда приходится работать со специфическии объемными книгами - просто голый текст, без изображений, без таблиц, редкие подзаголовки, но важный момент - весь текст залит одним длинным взаимосвязанным фреймом.

Заметил, что зависимость обработки этого текста от объема прямо чуть ли не экспоненциальна.
Если элементарное выделение (Ctrl-A) на 100-страничном текст - это секунда-две, на 200- страничном - секунд 10, то выделение 1000-страничного текста - может занимать до 10 минут.
Такая же история с заменой FindChangeByList-ом. На 1000 страничных текстах можно на полчаса уходить "курить", хотя 100-страничный обрабатывается за 5-10 секунд.

Причем даже не важно - разлит ли текст уже по полосам, или еще пока нет.

Разбить публикацию на куски и обрабатывать кусками очень неудобно, т.к. над всем текстом производится масса замен, в т.ч. и ручных, которые неудобно делать поглавно.

Отключение префлайта, проверки орфографии, включение построчного компоновщика абзацев на проблему почти не влияют.

Где бы еще копнуть?

p.s. Что интересно, до индизайна CS6 включительно подобных тормозов не было, а на всех CC, включая актуальную версию, уже тормозит. До CC мы спокойно обрабатывали даже 2500-страничные публикации за раз, без тормозов и на гораздо более слабых компьютерах.
 

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
И еще заметил особенность - если текст не выделять Ctrl-A, то тот же FindChangeByList отрабатывает достаточно быстро. Т.е. проблема в первую очередь именно при выделении текста. А у меня некоторые скрипты как только по выделенному умеют работать.
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
Это же 15+ см в корешке':=)'
Те, что по 2500, не совсем книги, а вот такие штуки. До 13 см в корешке. Сейчас эти сборники мы уже не выпускаем, но комментарии к законодательству по 800-1000 страниц попадаютися часто.
photosdz.jpg
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Такие объемы текста, действительно будут обрабатываться довольно долго
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
@LeonidB, Лёня))) где ты такую хрень берёшь?

4. Используйте утилиту управления шрифтами (например, ATM Deluxe), чтобы минимизировать число активных шрифтов в системе.
 

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
Такие объемы текста, действительно будут обрабатываться довольно долго
Я не понимаю другого. Почему скорость обработки не пропорциональна объему? При увеличении объема в 10 раз скорость выделения замедляется в 100.
И почему до CS6 проблем с выделением не было, а в почти таком же CC2014 эта проблема резко вылезла и до CC2018 так и не исправлена.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Я не понимаю другого. Почему скорость обработки не пропорциональна объему? При увеличении объема в 10 раз скорость выделения замедляется в 100.
И почему до CS6 проблем с выделением не было, а в почти таком же CC2014 эта проблема резко вылезла и до CC2018 так и не исправлена.
Суть вашего вопроса - вам интересна причина, по которой зависимость скорее, квадратичная, чем линейная? Все поддается обьясненью и все нуждается в земле. Дело в том, что все обьекты взаимодействуют друг с другом, соответственно, корректно при каждом изменении макета (даже таком безобидном, как выделение текста) должны перебираться все пбьекты со всеми, т.е. хорошо уже, что зависимость хотя бы квадратическая, а не экспоненциальная или факториальная. Но попробуем пованговать, почему, таки, именно квадратичная? Предположим, что алгоритм оптимизирован настолько, что просчитываются только попарные сочетания обьектов по одному разу (хотя, с точки зрения программирования, это утопия, к которой следует стремиться) Легко видеть, что данное количество операций имеет порядок именно второй степени от общего количества обьектов. Что и требовалось доказать.
 

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
Это еще хоть как-то объяснимо при обработке, если алгоритм совсем не оптимизирован. Но при простом выделении какие-такие операции производит индизайн?
И почему оно сломалось именно в в CC?
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
А если попробовать отключиться на время от интернета/локальной сети? Просто перебираю варианты... :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Это еще хоть как-то объяснимо при обработке, если алгоритм совсем не оптимизирован.
Внимательно читайте
Предположим, что алгоритм оптимизирован настолько, что просчитываются только попарные сочетания обьектов по одному разу (хотя, с точки зрения программирования, это утопия, к которой следует стремиться)
Т.е. это, как раз, наоборот, самый идеально оптимизированный случай, в реале же должна быть
экспоненциальная или факториальная
И почему оно сломалось именно в в CC?
На самом деле так было всегда, просто новые версии по определению более тормозные и требовательные к ресурсам - иначе кто будет новое железо покупать? Рубить сук на котором сидит никто не желает
 

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
Сейчас попробовал отключиться, вторую минуту висит...

зы. Это я про интернет
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
новые версии по определению более тормозные и требовательные к ресурсам
Как-то слишком выборочное тормозное место получилось. По остальным функциям такого катастрофического падения производительности нет.
Я убежден на 100%, что это ошибка.
Что происходит в момент выделения? - Запоминаются позиции начала и конца. Что там можно минутами делать?
 

-IKS-

Топикстартер
15 лет на форуме
Сообщения
208
Реакции
2
LeonidB, ситуация я думаю воспроизводима на любом компе. Просто создайте файл на 1000 страниц и залейте любым голым текстом.
Далее, ставим текстовый курсор в текст и жмем Ctrl-A и наслаждаемся ожиданием....