Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.02.2009, 10:26
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
Есть таблица с колонкой типа MEMO, в которой содержится код программы. Данный код используется при обработке другой таблицы. Для выполнения использую ExecScript, все нормально работает, но медленно, если строк в обрабатываемой таблице несколько тысяч. Преполагаю - это из-за того, что Fox постоянно перекомпилирует код обработки, может можно сделать Cache, чтобы ускорить этот процесс? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 10:37
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
создайте в этой таблице еще одно мемо поле вытащите из мемео текс, суньте во врем-й прг, компильните, считайте fxp и суньте в поле Compiled при выполнении считайте из Compiled, создайте в темп.каталоге файл и выполняйте, пересоздавать каждый раз необходимо после внесения изм-й, новой копмиляции, заморочившись на какой-то флаг актуальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 10:43
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
+ приведите текст скрипта + краткий алгоритм использования попробуем оптимизировать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 10:51
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
вот пример оптимизации, нужно было уйти от evaluate здесь имеется алгоритм, который сканит курсор (количество записей может быть ....) и постоянно вычисляет одну и ту-же, построенную по безумному алгоритму строку, чтобы не использовать макроподстановку, создаем врем-й файлик, компилим и постоянно зовем обычную готовую фоксовую компилированную функцию (бред было лень переписывать, поэтому именование переменных хромает) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 10:59
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
Вот сам пытаюсь это реализовать, только что делать, если у меня возврат из функции есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 11:06
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
lcTmpProgFileName = addbs(sys(2023))+"ttttt.prg" set procedure to (lcTmpProgFileName) additive далее 2-мя способами - я не вижу Вашей реализации Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2.
if llCreateTmpProc release procedure (lcTmpProgFileName) erase (lcTmpProgFileName) && если нужно прибить файл endif ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 11:09
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
при наличии доп.поля - храните компил.код рядом и в темп.каталог вытаскивайте именно компил.код, тогда потребность в компил.отпадает, перекомп. нужно будет делать только в случае неактуальности (если в основной скрипт внесли изменения) покажите пожалуйста примерный скрипт ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 11:21
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
Вот собственно и пишу реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2009, 14:24
|
|||
---|---|---|---|
|
|||
Компиляция MEMO поля |
|||
#18+
Спасибо. Удалось ускорить процесс в 5 раз .)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1586805]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 449ms |
0 / 0 |