Страница 1 из 1

Тайминг кода

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

timecode1.jpg

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

timecode2.jpg

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

timecode3.jpg

Так вот выглядит этот код в сырце. Компилируем и запускаем на выполнение. В debugView смотрим результат.

Тайминг кода

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

timecode4.jpg

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

timecode5.jpg

Если нужно запустить тайминг удаленно у клиента, то можно просто переименовать и обновить dll, как в случае и с пошаговым отладчиком.