|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
С помощью IBEScript.dll нужно выполнить более тысячи отдельных скриптов. Выполняю без переконнекта т.е. указываю disconnect=manual. Если предварительно объединяю скрипты в большие блоки, все работает ОК, но сложно отследить в каком файле ошибка. Если выполняю скрипты отдельными вызовами ExecScriptText, к средине выполнения производительность катастрофически проседает, на несколько порядков. Профайлер показывает 100% загрузку процессора в IBEScript.dll. Можно ли исправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 09:45 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
Нужен пример скрипта. Любой скрипт что-ли, будучи выполнен тыщу раз подряд, приводит к 100% загрузке? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 10:04 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
IBExpert, Да в общем то любой. Вот набросал простой пример и получил время 500 отдельных вызовов - 583 тика объединяю их в одну строку и вызываю - 17 тиков Т.е. разница в 30 раз, причем она растет в прогрессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 19:10 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
IBExpertприводит к 100% загрузке? Речь не о 100% загрузке, а о катастрофическом падении производительности при многократных вызовах ExecScriptText. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 19:19 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
Ты меня запутал. То, что сотни последовательных вызовов ExecScriptText на порядок-другой медленнее одного-единственного - это нормально. Каждый раз происходит инициализация и финализация скриптера, а manual disconnect означает лишь то, что по окончании вызова ExecScriptText коннект не будет закрыт и все. Сам коннект живет отдельно, и при следующем вызове ExecScriptText просто подключается к скриптеру. Сливай все в один файл перед выполнением, если время критично. Что мешает при сборке скриптов в один файл добавлять комментарии с именем файла? Либо собирай отдельный скрипт с INPUT и выполняй его. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 05:11 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
IBExpertТо, что сотни последовательных вызовов ExecScriptText на порядок-другой медленнее одного-единственного - это нормально. Каждый раз происходит инициализация и финализация скриптера, Печально, там разница не менее 2 порядков. Он при инициализации метаданные перечитывает? Потому что первые вызовы идут быстро, а чем дальше тем медленнее. IBExpertЧто мешает при сборке скриптов в один файл добавлять комментарии с именем файла? То, что при ошибке, я вижу только последний запрос с ошибкой, а не комментарий. Можно было бы, привязать имя файла к номеру строки, но номеров строк с ошибкой тоже нет. Есть рекомендации? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 10:13 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
Alex TruhinПечально, там разница не менее 2 порядков. Он при инициализации метаданные перечитывает? Потому что первые вызовы идут быстро, а чем дальше тем медленнее. Метаданные он не перечитывает - они ему попросту не нужны. 17 и 583 - это тики или все же секунды? Если секунды, то что-то действительно многовато. Надо смотреть. Alex TruhinТо, что при ошибке, я вижу только последний запрос с ошибкой, а не комментарий. Можно было бы, привязать имя файла к номеру строки, но номеров строк с ошибкой тоже нет. Есть рекомендации? Здесь в AText есть номер строки: TScriptBeforeExecStatementFunc = function (AStmtText, AText : PChar) : integer; Про INPUT я уже сказал, в этом случае получишь имя файла сразу, без нахлобучивания комментариев и сопоставления номеров строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 13:26 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
IBExpert17 и 583 - это тики или все же секунды? Это тики деленные на 100. Причем при 500 вызовах разница 34 раза, при 1500 вызовах получаем время 59 и 5001 т.е. разница 85 раз и т.д. в прогрессии (вот эта прогрессия меня и смущает). IBExpertЗдесь в AText есть номер строки: TScriptBeforeExecStatementFunc = function (AStmtText, AText : PChar) : integer; У меня нет номеров строк. Обновил только что IBEScript.dll, проверил все два раза. IBExpertПро INPUT я уже сказал, в этом случае получишь имя файла сразу, без нахлобучивания комментариев и сопоставления номеров строк. Это понятно. Похоже, единственный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 20:11 |
|
Вопрос по IBEScript.dll
|
|||
---|---|---|---|
#18+
Нашел проблему. Попробуй свежую версию. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 08:07 |
|
|
start [/forum/topic.php?fid=42&fpage=29&tid=1599521]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 301ms |
total: | 432ms |
0 / 0 |