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

Здесь есть возможность читать онлайн «W Cat - Язык программирования Euphoria. Справочное руководство» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования 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 имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.
[Материал из Википедии]

Язык программирования Euphoria. Справочное руководство — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования Euphoria. Справочное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

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

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

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

Иногда вы захотите сосредоточить своё внимание на детальном разборе определённого действия, выполняемого вашей программой. Например, в игре Language Warмы обнаружили, что игра, в общем-то достаточно быстрая, сильно тормозится во время отображения взрыва планеты, разбрасывая 2500 пикселов по всем возможным направлениям. Мы решили, что неплохо было бы разогнать подпрограмму взрыва. Нас не заботил остальной код, так как там скорость была вполне сносной. Мы дали команду profile(0) в самом начале игры, сразу после метакоманды with profile_time, чтобы остановить профилирование, а затем мы вставили команду profile(1) в начале подпрограммы взрыва и команду profile(0) в конце этой подпрограммы. Таким образом, мы могли исполнять игру, создавая многочисленные взрывы и журналируя множество выборок исключительно по эффекту взрыва. Если выборки изменялись и по другим подпрограммам более низкого уровня, мы знали, что те выборки были взяты во время взрыва. Если бы мы просто отслеживали профиль для целой программы, картина не была бы слишком ясной, так как подпрограммы более низкого уровня также использовались для передвижения кораблей, рисования трасс фазоров и т.д. Команда profile() может помочь точно таким же манером, когда вы производите и профилирование по счётчику.

3.2.1 Примечания о профилировании по времени

С каждым тиком и таком системных часов генерируется так называемое прерывание от таймера. Когда вы пишете with profile_time, Euphoria будет брать выборки из вашей программы и смотреть, какая команда выполнялась на момент каждого прерывания от таймера.

Эти прерывания обычно поступают с частотой 18.2 раза в секунду, но если вы вызвали подпрограмму tick_rate(), вы можете выбрать намного более высокую частоту прерываний и, таким образом, получить более точный профиль по времени, так как он будет базироваться на большем числе выборок. По умолчанию, если вы не вызвали tick_rate(), автоматически будет вызвано tick_rate(100), как только вы начали профилирование. Вы можете установить частоту ещё более высокой (скажем, до 1000), но тогда не исключено, что производительность вашей программы снизится.

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

with profile_time 100000

В этом случае зарезервируется пространство под 100000 выборок (к примеру). Если буфер переполняется, выдаётся предупреждение (в начале файла ex.pro). На частоте 100 выборок в секунду ваша программа может исполняться 250 секунд, пока не будет израсходован стандартный буфер на 25000 выборок. В Euphoria нет возможности динамического увеличения объёма буфера во время обработки прерывания. Именно поэтому вы должны задавать увеличение буфера сверх стандартного объёма в своей программе. Но после завершения каждой исполняемой команды высшего уровня Euphoria будет обрабатывать накопленные выборки, освобождая буфер для других выборок. Таким образом, профиль может базироваться на большем числе выборок, чем то, под которое вы фактически зарезервировали пространство.

Процент, показанный на левом поле в файле ex.pro, расчитывается путём отнесения числа выборок, пришедшихся на каждую данную команду, к общему числу взятых выборок, следовательно, если на команду пришлось 50 выборок из общего числа 500 выборок, то в поле, относящемся к этой команде, появится величина 10.0 (10 процентов). Когда профилирование остановлено командой profile(0), прерывания игнорируются, выборки не берутся, и общее число выборок не нарастает.

Увеличивая число выборок, вы можете повысить точность результатов. Тем не менее, необходимо отслеживать отсутствие ситуации, когда программа синхронизирует сама себя с прерываниями от таймера, ожидая отсчёта time(), чтобы продолжить исполнение. Команды, выполняемые сразу после точки, где проверяются часы, могут никогда не дать ни одной выборки, что могло бы дать вам весьма искажённую общую картину, то есть,

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Язык программирования Euphoria. Справочное руководство» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


libcat.ru: книга без обложки
Александр Цветков
Отзывы о книге «Язык программирования Euphoria. Справочное руководство»

Обсуждение, отзывы о книге «Язык программирования Euphoria. Справочное руководство» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x