Если надо сделать замеры скорости выполнения какого-нибудь алгоритма на разных этапах, то обычно фиксируют время и шлют отладочные сообщения, которые затем смотрят в debugview. Приходится писать какой-то код вручную, а затем его удалять (можно и оставлять, но такое имеет свои неудобства). Захотелось автоматизировать этот процесс. Методика похожа на пошаговый отладчик, про который я когда-то рассказывал.
У себя в менеджере проектов находим процедуру (через copy/past из среды клариона), в контекстном меню выбираем "Тайминг".
По названию процедуры определяется ее clw модуль. Этот clw копируется в clws, содержимое которого выводится для просмотра на экран. Поиском (или пролистыванием) находим место, где хотим сделать замеры. Ставим маркеры начать замеры, фиксировать замеры, завершить замеры. В тексте эти строки выделяются, соответственно, зеленым, желтым и серым. Нажимаем Сохранить, после чего в исходный clw вставляется дополнительный код.
Так вот выглядит этот код в сырце. Компилируем и запускаем на выполнение. В debugView смотрим результат.
Тайминг кода
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Тайминг кода
Для пример, в debugView выводится такая информация. Она содержит информацию о процедуре, дате и времени начала тайминга, для каждой точки фиксации текст соответствующей строки из сырца и прошедшее время относительно предыдущей фиксации (или начала тайминга).
После того, как поработали, в контекстном меню жмем "Восстановить после отладки", исходный clw файл восстанавливается из копии. Если вносились изменения в процедуре в среде клариона, то сырцы перегенерируются, и этого делать не надо. Компилируем.
Если нужно запустить тайминг удаленно у клиента, то можно просто переименовать и обновить dll, как в случае и с пошаговым отладчиком.
После того, как поработали, в контекстном меню жмем "Восстановить после отладки", исходный clw файл восстанавливается из копии. Если вносились изменения в процедуре в среде клариона, то сырцы перегенерируются, и этого делать не надо. Компилируем.
Если нужно запустить тайминг удаленно у клиента, то можно просто переименовать и обновить dll, как в случае и с пошаговым отладчиком.
C6/C11, ШВС, tps/btrieve.