Тайминг кода

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Тайминг кода

Сообщение finsoftrz »

Если надо сделать замеры скорости выполнения какого-нибудь алгоритма на разных этапах, то обычно фиксируют время и шлют отладочные сообщения, которые затем смотрят в debugview. Приходится писать какой-то код вручную, а затем его удалять (можно и оставлять, но такое имеет свои неудобства). Захотелось автоматизировать этот процесс. Методика похожа на пошаговый отладчик, про который я когда-то рассказывал.

timecode1.jpg

У себя в менеджере проектов находим процедуру (через copy/past из среды клариона), в контекстном меню выбираем "Тайминг".

timecode2.jpg

По названию процедуры определяется ее clw модуль. Этот clw копируется в clws, содержимое которого выводится для просмотра на экран. Поиском (или пролистыванием) находим место, где хотим сделать замеры. Ставим маркеры начать замеры, фиксировать замеры, завершить замеры. В тексте эти строки выделяются, соответственно, зеленым, желтым и серым. Нажимаем Сохранить, после чего в исходный clw вставляется дополнительный код.

timecode3.jpg

Так вот выглядит этот код в сырце. Компилируем и запускаем на выполнение. В debugView смотрим результат.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4549
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Тайминг кода

Сообщение finsoftrz »

Для пример, в debugView выводится такая информация. Она содержит информацию о процедуре, дате и времени начала тайминга, для каждой точки фиксации текст соответствующей строки из сырца и прошедшее время относительно предыдущей фиксации (или начала тайминга).

timecode4.jpg

После того, как поработали, в контекстном меню жмем "Восстановить после отладки", исходный clw файл восстанавливается из копии. Если вносились изменения в процедуре в среде клариона, то сырцы перегенерируются, и этого делать не надо. Компилируем.

timecode5.jpg

Если нужно запустить тайминг удаленно у клиента, то можно просто переименовать и обновить dll, как в случае и с пошаговым отладчиком.
C6/C11, ШВС, tps/btrieve.
Ответить