| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > SynUniHighlighter и SynEdit > Размер и скорость работы компонента |
| Автор: December 11.11.2004, 21:28 |
| Для тех, кому лень скачивать и экспериментировать На сколько раздувается прога в объёме при использовании компонента (в объёме)? Есть ли длительные процессы, тормозящие загрузку проги? |
| Автор: Vit 11.11.2004, 21:57 |
| Сам UniSynHignlighter весит не много, но базовый редактор SynEdit довольно большой, думаю на 100-200 кб тянет... Тормозить - не тормозит, разве что если очень большой свод правил, например несколько списков по несколько тысяч ключевых слов... На стандартных расскрасках тормозов нет. |
| Автор: SCHMaster 17.11.2004, 02:00 | ||
Гм... Ну с размером то я согласен. А вот с торможением - нет. Т.е. да, подтормаживает и не слабо. Зависит это, действительно, от кол-ва правил подсветки. Но не только. Еще: 1. от размера файла - чем больше текста приходится "обрабатывать", тем дольше загрузка (вполне естественно). 2. Так что... Ничего "военного" и страшного нет - скорость загрузки не медленнее, чем у любого редактора с подсветкой синтаксиса. Но, вроде, здесь не TSynEdit обсуждать собрались? А SynUniHighlighter. Действительно универсальная штучка. Если кто юзал TSynEdit - рекомендую. Если неюзал - поюзайте сперва без SynUniHighlighter, а потом с ним |
| Автор: Vit 17.11.2004, 06:04 | ||
С какой тихой радости? |
| Автор: Vitalik 17.11.2004, 13:47 | ||
Да, собственно сама подкраска происходит только того, что видно на экране. Но фактически при загрузке файла SynEdit пробегает весь этот файл с помощью связанного с ним компонента подсветки (например, SynUniHighlighter). Он это делает для того, чтобы выяснить какие строки начинаются с каких диапазонов. После этого он этим списочком диапазонов активно пользуется для быстрой раскраски текста при редактировании... Я думаю этот первый (глобальный) проход текста можно будет как-нибудь использовать... Но пока что я не вижу хороших способов облегчить этот первый проход. Разве что при первом проходе не искать токены в ключевых словах... Хм... А это может помочь! Вот только может быть будут проблемы с определением этого первого прохода... Ведь по идее компонент подсветки не знает для чего его в данный момент используют - то ли для первого пробега всего файла, то ли собсвтвенно для подсветки текста на экране... |
| Автор: SCHMaster 17.11.2004, 20:00 | ||||||
2Vit
Vitalik тебе ответил. Если неверишь - пройдись "пошагово" при компиляции...
Всего лишь ответ не вопрос
А SynUniHighlighter это все-таки для TSynEdit прибамбас |
| Автор: Vit 17.11.2004, 21:21 | ||
Не знал, для самого было откровение |
| Автор: SCHMaster 18.11.2004, 01:35 | ||
Vit
Я тоже не так давно узнал, хотя TSynEdit юзаю не первый год. А узнал, пытаясь найти где "оно" притормаживает |
| Автор: Monty 18.5.2005, 20:24 |
| Удивительно! У джедаев тормозит сильнее чем сам TSynEdit, но джедаи подкрашивают только то что видно |
| Автор: Quadr0 18.5.2005, 23:45 |
| ... |
| Автор: Vitalik 19.5.2005, 09:43 | ||||||
Что это за джедаи такие?
А разве, даже если не использовать SynUniDesigner в uses, он всё равно будет "сидеть" в приложении? |
| Автор: Monty 19.5.2005, 15:58 | ||||||
Это я у себя проверел ... ее нет в секции RCDATA ... если форма создается не динамически
А. Это я так JEDI называю
Не верю! И я вчера пошагово до омерзенья допроходился Подсвечиваются только видимые слова ... а точне, видимые строки! Кстати, чтобы небыло разберихи, я подмечу что проверял я на стандартных подсветках SynHighlighter*.pas |
| Автор: Vitalik 20.5.2005, 14:22 | ||||||
Весело
Ты правильно подметил: подсвечиваются только видимые строки. А как ты думаешь почему? Как удаётся SynEdit'у узнавать в каком диапазоне (обычный текст, комментарий, строка и т.п.) мы находимся? Ведь для этого пришлось бы знать, что находится в тексте до видимой на экране строки. Так вот я имел ввиду, что при загрузке текста в SynEdit, он вначале пробегается по всему файлу с помощью процедур SetLine и Next и с помощью процедуры GetRange определяет какой сейчас диапазон на начале строки (и так для каждой строчки). Потом он этой информацией пользуется для ускорения подсветки видимой части текста на экране Вот это-то и имелось ввиду. "Все беды от недостатка информации" - сказал кто-то...
А оно по идее и не имеет значения на каких подсветках проверять... SynEdit ко всем подсветкам (будь то его стандартным, будь то изысканный UniHighlighter) отностися абсолютно одинаково |
| Автор: Monty 20.5.2005, 20:38 | ||
Толко что хотел спросит насчет Рангов ps. все думал, а если мы загрузим текст и быстро его пролистаем вниз ... |
| Автор: Quadr0 21.5.2005, 13:32 |
| ... |
| Автор: Vitalik 22.5.2005, 11:56 | ||||
http://forum.sources.ru/smiles/Main/yes.gif
Стрянно... Я, конечно, с этим вопросом не разбирался, но меня терзают смутные сомнения... Вот к примеру, vcl70.bpl и rtl70.bpl. Вместе они занимают 2 с лишним метра. Эти bpl-ки всегда встраиваются в exe-шник, если мы используем vcl-компоненты. Так не все же эти 2 метра каждый раз присоединяются к exe-шнику! А только те модули, которые используются в приложении. Или хотя бы взять "редакторы свойств" для компонента. Не могут же эти редакторы, которые Delphi использует только на этапе конструирования формы каждый раз включаться в exe-шник? Это было бы очень глупо со стороны разработчиков Delphi! |
| Автор: Quadr0 22.5.2005, 12:09 |
| ... |
| Автор: Vitalik 22.5.2005, 12:35 | ||||||
Тебя? Как это?
Ты как-то абсолютно неправильно меня процитировал! Я писал: 1). "Кому не нужен дизайнер в программе (из-за размера исполняемого файла или по другим причинам), могут его безболезненно не использовать." (http://forum.vingrad.ru/index.php?showtopic=52597&view=findpost&p=415183) 2). "Как ты предполагаешь (после твоего разделения дизайнера) на этапе конструирования формы задать правила для нашего компонента?" (http://forum.vingrad.ru/index.php?showtopic=52597&view=findpost&p=415209) Как видишь, никакого противоречия!
А, кстати, теперь ведь тогда станет не очень удобно в run-time подсветку то редактировать! Нужно либо каждый раз предлагать выбирать где же находится дизайнер, либо где-то отдельно хранить его местоположение... Что есть очень не хорошо... |
| Автор: Quadr0 22.5.2005, 14:45 |
| ... |
| Автор: Vitalik 22.5.2005, 16:25 | ||||||||||
Здрасти! Приехали! А что по твоему делается в файле SynUniReg.pas?
Это ты о чём? Что ты имеешь ввиду?
Подожди, разве "редактировать подцветки" и "задавать правила" - это не одно и тоже??? Как это ни прискорбно, но похоже мы друг друга совсем не понимаем... Нужно определиться со словарём терминов, чтобы разговаривать не на разных языках...
Теоретически это было бы не плохо, но: 1). Мало кто быстро среагирует на создание опроса. 2). С тем же результатом можно здесь выкладывать свои мнения, но пока что в обсуждении учавствуем только мы вдвоём 3). Мы сами друг друга похоже не до конца понимаем, а тут еще предлагать голосовать не разобравшись в проблеме... Поэтому пока что буду ждать твоего ответа... |
| Автор: Quadr0 22.5.2005, 18:33 |
| ... |