Модераторы: Vitalik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер и скорость работы компонента 
:(
    Опции темы
December
Дата 11.11.2004, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Для тех, кому лень скачивать и экспериментировать smile
На сколько раздувается прога в объёме при использовании компонента (в объёме)? Есть ли длительные процессы, тормозящие загрузку проги?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Vit
Дата 11.11.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Сам UniSynHignlighter весит не много, но базовый редактор SynEdit довольно большой, думаю на 100-200 кб тянет... Тормозить - не тормозит, разве что если очень большой свод правил, например несколько списков по несколько тысяч ключевых слов... На стандартных расскрасках тормозов нет.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
SCHMaster
Дата 17.11.2004, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



Цитата
На сколько раздувается прога в объёме при использовании компонента (в объёме)? Есть ли длительные процессы, тормозящие загрузку проги?

Гм... Ну с размером то я согласен. А вот с торможением - нет. Т.е. да, подтормаживает и не слабо. Зависит это, действительно, от кол-ва правил подсветки. Но не только. Еще:
1. от размера файла - чем больше текста приходится "обрабатывать", тем дольше загрузка (вполне естественно).
2. smile от включенного при загрузке текста режима WordWrap - причина таже. Кстати в более ранних версиях файлы размером около 1мb при включенном WordWrap наглухо вешали TSynEdit. Сейчас мною лично этого незамечено, но говорят - бывает.

Так что... Ничего "военного" и страшного нет - скорость загрузки не медленнее, чем у любого редактора с подсветкой синтаксиса. Но, вроде, здесь не TSynEdit обсуждать собрались? А SynUniHighlighter.
Действительно универсальная штучка. Если кто юзал TSynEdit - рекомендую. Если неюзал - поюзайте сперва без SynUniHighlighter, а потом с ним smile . Сразу все станет ясно.
PM MAIL   Вверх
Vit
Дата 17.11.2004, 06:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Цитата(SCHMaster @ 16.11.2004, 17:00)
1. от размера файла - чем больше текста приходится "обрабатывать", тем дольше загрузка (вполне естественно).



С какой тихой радости? smile smile Подкраска происходит только того что видно на экране... Т.е. максимум несколько тысяч лексем, даже если файл гигабайтный... Тормозить может SynEdit но никак не подкраска, а обсуждаем мы компонент подкраски синтаксиса а вовсе не SynEdit.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vitalik
Дата 17.11.2004, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Vit @ 17.11.2004, 06:04)
Подкраска происходит только того что видно на экране... Т.е. максимум несколько тысяч лексем, даже если файл гигабайтный... Тормозить может SynEdit но никак не подкраска, а обсуждаем мы компонент подкраски синтаксиса а вовсе не SynEdit.

Да, собственно сама подкраска происходит только того, что видно на экране.
Но фактически при загрузке файла SynEdit пробегает весь этот файл с помощью связанного с ним компонента подсветки (например, SynUniHighlighter). Он это делает для того, чтобы выяснить какие строки начинаются с каких диапазонов. После этого он этим списочком диапазонов активно пользуется для быстрой раскраски текста при редактировании...
Я думаю этот первый (глобальный) проход текста можно будет как-нибудь использовать...
Но пока что я не вижу хороших способов облегчить этот первый проход. Разве что при первом проходе не искать токены в ключевых словах... Хм... А это может помочь!
Вот только может быть будут проблемы с определением этого первого прохода... Ведь по идее компонент подсветки не знает для чего его в данный момент используют - то ли для первого пробега всего файла, то ли собсвтвенно для подсветки текста на экране...
PM MAIL WWW ICQ YIM   Вверх
SCHMaster
Дата 17.11.2004, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



2Vit
Цитата
С какой тихой радости?

Vitalik тебе ответил. Если неверишь - пройдись "пошагово" при компиляции...
Цитата
Тормозить может SynEdit но никак не подкраска, а обсуждаем мы компонент подкраски синтаксиса а вовсе не SynEdit

Всего лишь ответ не вопрос
Цитата
Есть ли длительные процессы, тормозящие загрузку проги?
.
А SynUniHighlighter это все-таки для TSynEdit прибамбас smile

PM MAIL   Вверх
Vit
Дата 17.11.2004, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Цитата(SCHMaster @ 17.11.2004, 11:00)
Vitalik тебе ответил. Если неверишь - пройдись "пошагово" при компиляции...



Не знал, для самого было откровение smile


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
SCHMaster
Дата 18.11.2004, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



Vit
Цитата
Не знал, для самого было откровение

Я тоже не так давно узнал, хотя TSynEdit юзаю не первый год. А узнал, пытаясь найти где "оно" притормаживает smile . Нашел smile
PM MAIL   Вверх
Monty
Дата 18.5.2005, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Удивительно!

У джедаев тормозит сильнее чем сам TSynEdit, но джедаи подкрашивают только то что видно smile ... покрайней мере, я так уверен smile


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Quadr0
Дата 18.5.2005, 23:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 19.5.2011, 16:34
  Вверх
Vitalik
Дата 19.5.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Monty @ 18.5.2005, 20:24)
У джедаев тормозит сильнее чем сам TSynEdit

Цитата(Quadr0 @ 18.5.2005, 23:45)
У джежаев вообще все компоненты какие-то "сырые", недоделанные.

Что это за джедаи такие? smile

Цитата(Quadr0 @ 18.5.2005, 23:45)
Объёму прибавляет поставляемый с компонентом редактор, который я уже отделил от компонента (шутка ли лишняя форма размером ~ 150кб и 112 pas файл к ней ?!) .

А разве, даже если не использовать SynUniDesigner в uses, он всё равно будет "сидеть" в приложении? smile
PM MAIL WWW ICQ YIM   Вверх
Monty
Дата 19.5.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Цитата(Vitalik @ 19.5.2005, 08:43)
А разве, даже если не использовать SynUniDesigner в uses, он всё равно будет "сидеть" в приложении?

Это я у себя проверел ... ее нет в секции RCDATA ... если форма создается не динамически

Цитата(Vitalik @ 19.5.2005, 08:43)
Что это за джедаи такие?

А. Это я так JEDI называю smile ... им это подходит smile


Цитата(SCHMaster @ 17.11.2004, 19:00)
Если неверишь - пройдись "пошагово" при компиляции...

Не верю! И я вчера пошагово до омерзенья допроходился smile ... и что?
Подсвечиваются только видимые слова ... а точне, видимые строки!

Кстати, чтобы небыло разберихи, я подмечу что проверял я на стандартных подсветках SynHighlighter*.pas smile


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Vitalik
Дата 20.5.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Monty @ 19.5.2005, 15:58)
А. Это я так JEDI называю  ... им это подходит

Весело smile Буду знать smile

Цитата(Monty @ 19.5.2005, 15:58)
Не верю! И я вчера пошагово до омерзенья допроходился  ... и что?
Подсвечиваются только видимые слова ... а точне, видимые строки!

Ты правильно подметил: подсвечиваются только видимые строки. А как ты думаешь почему? Как удаётся SynEdit'у узнавать в каком диапазоне (обычный текст, комментарий, строка и т.п.) мы находимся? Ведь для этого пришлось бы знать, что находится в тексте до видимой на экране строки.
Так вот я имел ввиду, что при загрузке текста в SynEdit, он вначале пробегается по всему файлу с помощью процедур SetLine и Next и с помощью процедуры GetRange определяет какой сейчас диапазон на начале строки (и так для каждой строчки). Потом он этой информацией пользуется для ускорения подсветки видимой части текста на экране smile
Вот это-то и имелось ввиду.
"Все беды от недостатка информации" - сказал кто-то...

Цитата(Monty @ 19.5.2005, 15:58)
Кстати, чтобы небыло разберихи, я подмечу что проверял я на стандартных подсветках SynHighlighter*.pas

А оно по идее и не имеет значения на каких подсветках проверять... SynEdit ко всем подсветкам (будь то его стандартным, будь то изысканный UniHighlighter) отностися абсолютно одинаково smile

PM MAIL WWW ICQ YIM   Вверх
Monty
Дата 20.5.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Цитата(Vitalik @ 20.5.2005, 13:22)
Ты правильно подметил: подсвечиваются только видимые строки. А как ты думаешь почему? Как удаётся SynEdit'у узнавать в каком диапазоне (обычный текст, комментарий, строка и т.п.) мы находимся? Ведь для этого пришлось бы знать, что находится в тексте до видимой на экране строки.
Так вот я имел ввиду, что при загрузке текста в SynEdit, он вначале пробегается по всему файлу с помощью процедур SetLine и Next и с помощью процедуры GetRange определяет какой сейчас диапазон на начале строки (и так для каждой строчки). Потом он этой информацией пользуется для ускорения подсветки видимой части текста на экране

Толко что хотел спросит насчет Рангов smile ... вот и ответ smile

ps. все думал, а если мы загрузим текст и быстро его пролистаем вниз ... smile


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Quadr0
Дата 21.5.2005, 13:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 19.5.2011, 16:30
  Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.