Модераторы: 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
  Вверх
Vitalik
Дата 22.5.2005, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Quadr0 @ 21.5.2005, 13:32)
Файл размечивается до отображения на экране. А во воремя загрузки крутить ничего низя

--Resize_Images_Alt_Text--

Цитата(Quadr0 @ 21.5.2005, 13:32)
Конечно! Компонент же его использует! Он уже "вкомпилированн" в SynUniSyn.bpl пекедж.

Стрянно... Я, конечно, с этим вопросом не разбирался, но меня терзают смутные сомнения...
Вот к примеру, vcl70.bpl и rtl70.bpl. Вместе они занимают 2 с лишним метра. Эти bpl-ки всегда встраиваются в exe-шник, если мы используем vcl-компоненты. Так не все же эти 2 метра каждый раз присоединяются к exe-шнику! А только те модули, которые используются в приложении.
Или хотя бы взять "редакторы свойств" для компонента. Не могут же эти редакторы, которые Delphi использует только на этапе конструирования формы каждый раз включаться в exe-шник? Это было бы очень глупо со стороны разработчиков Delphi!
PM MAIL WWW ICQ YIM   Вверх
Quadr0
Дата 22.5.2005, 12:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:43
  Вверх
Vitalik
Дата 22.5.2005, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Quadr0 @ 22.5.2005, 12:09)
Даже если не присоединяется. Всё равно раздражает.

Тебя? Как это? smile

Цитата(Quadr0 @ 22.5.2005, 12:09)
И смотри. Одно твоё сообщение противоречит другому. "Кому не нужен дизайнер - могут его отключить" и "Как мы будем задавать правила подцветки без дизайнера в run-time?"

Ты как-то абсолютно неправильно меня процитировал! Я писал:
  1). "Кому не нужен дизайнер в программе (из-за размера исполняемого файла или по другим причинам), могут его безболезненно не использовать." (здесь)
  2). "Как ты предполагаешь (после твоего разделения дизайнера) на этапе конструирования формы задать правила для нашего компонента?" (здесь)
Как видишь, никакого противоречия! smile

Цитата
А в run-time правила можно и без дизайнера задавать.

А, кстати, теперь ведь тогда станет не очень удобно в run-time подсветку то редактировать! Нужно либо каждый раз предлагать выбирать где же находится дизайнер, либо где-то отдельно хранить его местоположение...
Что есть очень не хорошо...
PM MAIL WWW ICQ YIM   Вверх
Quadr0
Дата 22.5.2005, 14:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:44
  Вверх
Vitalik
Дата 22.5.2005, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Quadr0 @ 22.5.2005, 14:45)
Каким макаром ты собираешься на этапе конструирования формы работать с дизайнером. Формы то ещё нет!

Здрасти! Приехали! smile
А что по твоему делается в файле SynUniReg.pas?
Код
//...
procedure Register;
begin
  RegisterComponents( SYNS_ComponentsPage, [TSynUniSyn] );
  RegisterComponentEditor(TSynUniSyn, TSynUniEditor); // регистрируем редактор компонента
end;

{ TSynUniEditor }

procedure TSynUniEditor.Edit; // вот наш редактор - это вызов UniDesigner'a
begin
  TSynUniDesigner.EditHighlighter( Component as TSynUniSyn );
  Designer.Modified();
end;
//...


Цитата(Quadr0 @ 22.5.2005, 14:45)
Вот правила и задаются через типы.

Это ты о чём? Что ты имеешь ввиду?

Цитата(Quadr0 @ 22.5.2005, 14:45)
Предполагается, что те, кто будут юзать дизайнер, будут создавать и редактировать в нём подцветки, а задавать через него правила это какое-то форменное извращение.

Подожди, разве "редактировать подцветки" и "задавать правила" - это не одно и тоже???
Как это ни прискорбно, но похоже мы друг друга совсем не понимаем... Нужно определиться со словарём терминов, чтобы разговаривать не на разных языках...

Цитата(Quadr0 @ 22.5.2005, 14:45)
Предлагаю устроить опрос, указав причны для чего его хотят отделить и почему его лучше оставить и на основе его результатов выбрать компромиссный путь.

Теоретически это было бы не плохо, но:
1). Мало кто быстро среагирует на создание опроса.
2). С тем же результатом можно здесь выкладывать свои мнения, но пока что в обсуждении учавствуем только мы вдвоём
3). Мы сами друг друга похоже не до конца понимаем, а тут еще предлагать голосовать не разобравшись в проблеме...

Поэтому пока что буду ждать твоего ответа...
PM MAIL WWW ICQ YIM   Вверх
Quadr0
Дата 22.5.2005, 18:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

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


 




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


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

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