Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) тормаза на формах (число прочтений - 11293 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #15 - 07. Декабря 2006 :: 13:32
Печать  
Погоди,
при загрузке 2.5 без ФормЕкс неужели есть тормоза??
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: тормаза на формах
Ответ #16 - 07. Декабря 2006 :: 13:35
Печать  
Цитата:
Погоди, 
при загрузке 2.5 без ФормЕкс неужели есть тормоза??


мне сложно отключить FormEx так как вся конфа им пронизана, но я беру версию 1C++ до разделения (в ней был встроен FormEx) и тормоза тут же исчезают...
  
Наверх
wwwICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #17 - 07. Декабря 2006 :: 13:40
Печать  
Это проблема ФормЕкс, в каком-то из релизов ФормЕкс 2.5 после разделения снова появились тормоза.

Попробуй поищи более раннюю сборку ФормЕкс, например, сразу после разделения или попробуй №13 или 26
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: тормаза на формах
Ответ #18 - 07. Декабря 2006 :: 13:47
Печать  
ок. буду смотреть\искать...
  
Наверх
wwwICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: тормаза на формах
Ответ #19 - 07. Декабря 2006 :: 14:12
Печать  
мда...отключил все же FormEx.... (хоть с раскраской таблиц хоть без нее, но при включенном FormEx тормоза есть..)

что можно сказать кроме как: artbear - ты прав...
  
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: тормаза на формах
Ответ #20 - 08. Декабря 2006 :: 12:15
Печать  
noprogrammer писал(а) 07. Декабря 2006 :: 14:12:
мда...отключил все же FormEx.... (хоть с раскраской таблиц хоть без нее, но при включенном FormEx тормоза есть..)

что можно сказать кроме как: artbear - ты прав...

Хочется все же несколько слов в защиту FormEx.

Раскраска таблиц, конечно же, влияет на скорость отрисовки. Но не так значительно, как ты думаешь. Перерисовка происходит сейчас ровно на один раз больше, чем это делает штатный механизм 1С. Заметно это только в терминале с очень узким каналом. Да и то вполне терпимо.
Гораздо большее влияние оказывают некоторые предопределенные процедуры.
ПриДвиженииМыши(), например. Если неаккуратно ими пользоаваться (не фильтровать мышиные движения), то вполне возможны тормоза. И т.п.

FormEx продолжает активно развиваться и релиз двухгодичной давности это совсем не то, что сегодняшний. Плохо только, что документация отстает (ну, этим грешит и 1С++).
Так что корректным сравнением по тормозам можно считать только конфу, где не задействовано вообще никаких методов FormEx, кроме раскраски. Остальное - на совести разработчика. АЛьФ дал мощное оружие - нужно уметь им пользоваться.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #21 - 08. Декабря 2006 :: 12:35
Печать  
Да, тормоза именно из-за вызова каких-то предопределенных событий.
Я давно смотрел исходники ФормЕкс, там сделано вот как:
Для тех событий, для которых есть обработчики, поиск выполняется всего один раз и далее используется полученный номер без постоянного поиска.
А вот если обработчик события в модуле не существует, то каждый раз происходит его повторный поиск в модуле формы и глобальном модуле, что и вызывает тормоза Печаль

ИМХО нужно сделать по аналогии с 1С++ (Форма, АктивИкс, ТП) - поиск обработчиков событий выполняется один раз при инициализации объекта класса для указанной формы, и если обработчика нет, повторный поиск не выполняется и событие пропускается.

Но это нужно идти во внутренности ФормЕкс, что может сделать не далеко не каждый Улыбка - в основном только зеленые Улыбка
В принципе, я планировал заняться созданием подобной схемы, т.к. ФормЕкс давно и активно юзаю.

Для обычных пользовалей можно рекомендовать только отключать ненужные события через фильтр (особенно Мышь).
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #22 - 08. Декабря 2006 :: 12:39
Печать  
А вообще давно хочу сделать схему быстрого поиска процедур/функций в модулях наподобие ТурбоБЛ, включив ее в 1С++.

Чтобы автоматически при загрузке 1С++ кешировались все методы глобальника.
А при открытии формы кешировать методы формы.
Тогда и ФормЕкс при загруженном 1С++ будет работать быстро Улыбка

Естественно, подобная схема будет сделана опциональной, также как и работа ТурбоБЛ.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #23 - 08. Декабря 2006 :: 12:40
Печать  
Дока на 1С++ потихоньку правится и увеличивается Улыбка
Сейчас уже очень много объектов задокументировано.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: тормаза на формах
Ответ #24 - 08. Декабря 2006 :: 12:49
Печать  
Цитата:
А вот если обработчик события в модуле не существует, то каждый раз происходит его повторный поиск в модуле формы и глобальном модуле, что и вызывает тормоза

Неужели это так влияет на скорость? Печаль
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #25 - 08. Декабря 2006 :: 12:58
Печать  
artbear писал(а) 08. Декабря 2006 :: 12:39:
А вообще давно хочу сделать схему быстрого поиска процедур/функций в модулях наподобие ТурбоБЛ, включив ее в 1С++.

Я как-то проводил замеры времени поиска методов в глобальнике -
на зарплатной базе с количеством строк ~52 000

последняя процедура в модуле ищется на 10-15% дольше, чем первая Печаль
Т.е. очень похоже, что здесь у 1С, как и в других местах кода, идет простой поиск по списку, даже не отсортированному Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #26 - 08. Декабря 2006 :: 13:04
Печать  
vip писал(а) 08. Декабря 2006 :: 12:49:
Цитата:
А вот если обработчик события в модуле не существует, то каждый раз происходит его повторный поиск в модуле формы и глобальном модуле, что и вызывает тормоза

Неужели это так влияет на скорость? Печаль


Например, читаем
http://www.1cpp.ru/docum/html/FormEx.html#onrefresh

Это событие вызывается очень часто.
Если его обработчика нет, идет постояннный повторный и абсолютно ненужный поиск Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: тормаза на формах
Ответ #27 - 08. Декабря 2006 :: 13:06
Печать  
И еще
http://www.1cpp.ru/docum/html/FormEx.html#id11
т.е. при каждом обновлении (очень часто) происходит вызов двух процедур, которых нет, и это все тормозит.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: тормаза на формах
Ответ #28 - 08. Декабря 2006 :: 13:14
Печать  
Цитата:
последняя процедура в модуле ищется на 10-15% дольше, чем первая 
Т.е. очень похоже, что здесь у 1С, как и в других местах кода, идет простой поиск по списку, даже не отсортированному

Дело , наверное, еще в том, что многие предопределенные процедуры формекса "прозрачны", т.е. если нет такой в локальном модуле - ищется в глобальном.
Так сообщи АЛьФу о таких делах.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: тормаза на формах
Ответ #29 - 08. Декабря 2006 :: 13:26
Печать  
Цитата:

Насколько я знаю, такого метода уже давно нет.
Цитата:

И такого тоже Улыбка (это одно и то же)
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать