Странный эффект у SCTL_CREATE
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Странный эффект у SCTL_CREATE
Очередная головоломка. Для воспроизведения нужен плагин RESearch.
Данный скрипт можно сделать макросом, либо поместить в файл и запускать с помощью lm:post.
Скрипт делает всего-то ничего: измеряет время исполнения SCTL_CREATE, в секундах.
1. Сначала результат 0, регулярно.
2. Затем через главное меню изменим язык интерфейса с английского на русский.
3. Результат скрипта становится примерно 1.17 сек., также регулярно.
4. Перезапускаем Фар (auto save setup - отключен).
5. Результат скрипта остаётся примерно 1.17 сек., регулярно.
6. Перезапускаем Фар (auto save setup - отключен).
7. Результат скрипта становится 0, регулярно.
То-есть, для восстановления исходного состояния нужны 2 перезапуска Фара.
Для чистоты эксперимента предварительно удалял базу RESearch, это ни на что не повлияло.
С другими плагинами пока такого эффекта не наблюдал.
Windows XP SP3 x86, Far 3.0.3421, RESearch 7.67
Скрипт делает всего-то ничего: измеряет время исполнения SCTL_CREATE, в секундах.
1. Сначала результат 0, регулярно.
2. Затем через главное меню изменим язык интерфейса с английского на русский.
3. Результат скрипта становится примерно 1.17 сек., также регулярно.
4. Перезапускаем Фар (auto save setup - отключен).
5. Результат скрипта остаётся примерно 1.17 сек., регулярно.
6. Перезапускаем Фар (auto save setup - отключен).
7. Результат скрипта становится 0, регулярно.
То-есть, для восстановления исходного состояния нужны 2 перезапуска Фара.
Для чистоты эксперимента предварительно удалял базу RESearch, это ни на что не повлияло.
С другими плагинами пока такого эффекта не наблюдал.
Windows XP SP3 x86, Far 3.0.3421, RESearch 7.67
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: Странный эффект у SCTL_CREATE
ну различие каким то образом происходит из за того что в случаях 1,7 плагин не загружен, а в 3,5 загружен (из за смены языка и невалидности кэша в таком случае).
т.е. когда этот плагин загружен он там что то с настройками мутит
т.е. когда этот плагин загружен он там что то с настройками мутит
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Странный эффект у SCTL_CREATE
Поправь, если ошибаюсь: разве при вызове SCTL_CREATE для базы RESearch другим плагином сам RESearch вызывается Фаром? Почему же тогда такое гигантское время (1.17 сек.)?
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: Странный эффект у SCTL_CREATE
не вызывается, но видимо он там что то делает в фоне или что то такое.
я не знаю что и почему, я тебе только объяснил что именно влияет на разницу во времени и почему два раза надо фар перезапустить.
я не знаю что и почему, я тебе только объяснил что именно влияет на разницу во времени и почему два раза надо фар перезапустить.
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: Странный эффект у SCTL_CREATE
Там же асинхронность, и при открытии базы ожидается завершение предыдущей записи, а также во время открытия если кто то ещё пытается открыть в тоже время то один ждёт пока другой закончит "открытие".
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Странный эффект у SCTL_CREATE
Если RESearch завершил запись, будучи вызван после смены языка, время скрипта должно быть 0. Если не завершил - бесконечность. Откуда берутся загадочные 1.17 сек., причём стабильно?t-rex wrote:Там же асинхронность, и при открытии базы ожидается завершение предыдущей записи
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: Странный эффект у SCTL_CREATE
Бесконечность и дед локи там быть не могут, запись происходит только при SCTL_FREE.
А откуда оно берётся фиг его знает, это уже дебагить надо а не тут писать. Может там плагин постоянно на PluginSynchro подписывается и что то в базу пишет.
А откуда оно берётся фиг его знает, это уже дебагить надо а не тут писать. Может там плагин постоянно на PluginSynchro подписывается и что то в базу пишет.
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Странный эффект у SCTL_CREATE
Я проверил: плагин не экспортирует ProcessSynchroEventW.t-rex wrote:А откуда оно берётся фиг его знает, это уже дебагить надо а не тут писать. Может там плагин постоянно на PluginSynchro подписывается и что то в базу пишет.
Также проверил, что если в этом (тормозном) случае вызвать по полученному хэндлу Enum с subkey==0, то Фар устанавливает Count==0, то-есть "нет элементов".
Предполагаю, что RESearch просто не освобождает хэндл, а 1.17 сек. - это тайм-аут SQLite3.
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: Странный эффект у SCTL_CREATE
Странно, ибо чего бы sqlite-у таймаутится то? Он вполне себе нормально поддерживает несколько подключений к одной базе.Shmuel wrote:Предполагаю, что RESearch просто не освобождает хэндл, а 1.17 сек. - это тайм-аут SQLite3.