Читаем Язык программирования Euphoria. Справочное руководство полностью

Когда ваша программа вызывает trace(3), активируется трассировка в файл. В текущем каталоге открывается файл ctrace.out. В нём записываются последние 500 команд Euphoria, которые выполнены по вашей программе. Здесь работает круговой буфер, в котором содержится максимум 500 команд. Когда достигнут конец ctrace.out, следующая исполненная команда записывается в начале файла. Самая последняя исполненная команда всегда сопровождается строкой "=== THE END ===". Поскольку буфер круговой, запись о последней исполненной команде может появиться в любом месте файла ctrace.out. Команда, записанная перед строкой "=== THE END ===" в уже очень длинном файле, является 500-ой в буфере, последней.

Данная форма трассировки поддержана и интерпретатором, и транслятором с Euphoria на Си. Она бывает особенно полезна, когда случается аврийная остановка на машинном уровне, препятствующая Euphoria в записи обычного диагностического файла ex.err. Взглянув на последнюю перед аварией выполненную команду, вы можете составить обоснованное предположение о причине аварии. Возможно, этой последней командой был вызов poke() по незаконному адресу в памяти. Возможно, это был вызов подпрограммы Си. В некоторых случаях это может быть сигналом о наличии ошибки в собственно интерпретаторе или трансляторе.

Исходный код каждой следующей команды непосредственно перед её исполнением выталкивается для записи в файл ctrace.out, следовательно, наиболее вероятно, что авария произошла именно во время исполнения последней записанной команды, которую вы видите в файле ctrace.out.

<p>3.2 Профилирование</p>

Профилирование включается командой with profile (DOS32, WIN32, Linux, FreeBSD) или командой with profile_time (только DOS32). В результате профилирования вашей программы вы получите специальную её распечатку, которая называется профиль и которая по окончании работы программы вырабатывается интерпретатором и записывается в специальном файле листинга ex.pro. Файл листинга располагается в текущем каталоге.

Имеется два режима профилирования: по счётчику, и по времени. Первый режим, по счётчику, работает, когда вы пишете with profile. Второй режим, по времени, работает, когда вы пишете with profile_time. Вы не можете смешивать эти два режима в единственном прогоне своей программы. Чтобы получить оба профиля, вам потребуется два отдельных её прогона.

Мы осуществили прогон нашей программы sieve8k.ex (программа проверки производительности из каталога demo\bench) и в том, и в другом режиме профилирования. Результаты можно видеть в файлах sieve8k.pro (по счётчику) и sieve8k.pro2 (по времени).

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

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

В файл листинга попадут только те команды, которые откомпилированы после записи with profile или with profile_time. Обычно вы будете указывать with profile или with profile_time в самом начале вашего главного файла .ex, чтобы получить в листинге полный отчёт по всем командам. В редакторе Euphoria этот файл имеет раскрашенный синтаксис.

Профилирование может во многом помочь вам отполировать вашу программу до блеска:

* позволяет вам ясно видеть команды, которые исполняются наиболее напряжённо и требуют к себе особого внимания с точки зрения оптимизации и ускорения кода

* даёт вам возможность убедиться, что ваша программа на самом деле работает именно так, как вы это задумали

* может снабдить вас статистикой по входным данным

* покажет вам, какие участки кода никогда не были даже проверены - не пускайте ваших пользователей впереди себя в очереди за такой пикантной новостью!

Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных