Эмуляция DOS под Windows XP не вполне совершенна. Когда вы производите профилирование времени (with profile_time), функция time() может иметь погрешность до нескольких процентов. Эта проблема не имеет места под Windows ME/98/95.
На некоторых машинах функция time() может выдавать отрицательное число. Тем не менее, вы можете использовать разность отсчётов от time(), чтобы измерять истекшее время.
Пример:
constant ITERATIONS = 1000000
integer p
atom t0, loop_overhead
t0 = time()
for i = 1 to ITERATIONS do
-- время пустого цикла
end for
loop_overhead = time() - t0
t0 = time()
for i = 1 to ITERATIONS do
p = power(2, 20)
end for
? (time() - t0 - loop_overhead)/ITERATIONS
-- вычисление времени (в секундах) одного возведения в степень
См. также:
date, tick_rate
trace
Синтаксис:
with trace
trace(i)
Описание:
Если i равно 1 или 2, включается полноэкранная интерактивная трассировка/отладка исполнения команд программой. Если i равно 3, включается трассировка команд в файл протокола с именем ctrace.out. Если i равно 0, трассировка выключается. Когда i равно 1, отображение на экране трассировки цветное. Когда i равно 2, трассировка отображается в монохромном режиме. Трассироваться будут только те подпрограммы, которые были откомпилированны с метакомандой " with trace". Процедура trace() не будет давать эффекта, если вызвана вне участкавашей программы, на котором действует команда " with trace".
См. Часть I - 3.1 Отладка и профилирование, чтобы уяснить детали по вопросам трассировки и отладки.
Комментарии:
Используйте trace(2), если цветное отображение на вашей системе затруднено.
Все формы trace() поддерживаются интерпретатором.
Транслятором с Euphoria на Си поддерживается только trace(3).
Пример:
if x then
-- да, этот участок требует отладки...
trace(1)
-- и т.д.
...
end if
См. также:
profile, debugging and profiling
...
unlock_file
Синтаксис:
include file.e
unlock_file(fn, s)
Описание:
Отпирает открытый файл fn или участок файла fn. Данный файл должен быть перед этим заперт с использованием lock_file(). Под DOS32 и WIN32 вы можете отпереть некоторый участок внутри файла, задавая аргумент s в виде {первый_байт, последний_байт}. Этот же самый участок в файле должен быть перед этим заперт с использованием lock_file(). Под Linux/FreeBSD в данной версии вы можете запирать и отпирать только весь файл целиком. Аргумент s должен быть пустым рядом {}, если отпирается весь файл. Под Linux/FreeBSD аргумент s всегда должен быть пустым рядом {}.
Комментарии:
Вы должны отпереть запертый вами файл при первой же возможности, чтобы сделать доступным его использование другими программами (процессами).
Любые файлы, которые вы запираете из своей программы, будут автоматически отперты при завершении вашей программы.
См. lock_file() для изучения дальнейших комментариев и примера.
См. также:
lock_file
unregister_block
Синтаксис:
include machine.e (or safe.e)
unregister_block(a)
Описание:
Удаляет блок памяти из списка безопасных блоков, поддерживаемого safe.e(отладочной версией machine.e). Участок памяти, занятый этим блоком, начинается по адресу a.
Комментарии:
Данная процедура предназначена для использования только в отладочных целях. Применяйте её для вычеркивания блоков памяти, которые вы ранее внесли в список с помощью процедуры register_block(). Вычеркивая (удаляя) блок, вы исключаете его из списка безопасных блоков, поддерживаемого safe.e. Это предохраняет вашу программу от любых последующих операций чтения-записи по адресам внутри блока.
См. register_block() для уяснения деталей и изучения примера.
См. также:
register_block, safe.e
upper
Синтаксис:
include wildcard.e
x2 = upper(x1)
Описание:
Преобразует атом или ряд символов на латинском алфавите к верхнему регистру.
Пример:
s = upper("Euphoria")
-- s равно "EUPHORIA"
a = upper('g')
-- a равно 'G'
s = upper({"Euphoria", "Programming"})
-- s равно {"EUPHORIA", "PROGRAMMING"}
См. также:
lower
use_vesa
Платформа:
DOS3 2
Синтаксис:
include machine.e
use_vesa(i)
Описание:
use_vesa(1) переведет Euphoria в режим подчинения рекомендациям графического стандарта VESA. Это может улучшить работу программ Euphoria в режимах SVGA графики с некоторыми видеоплатами. use_vesa(0) восстановит оригинальный метод, применяемый Euphoria при работе с видеоплатами.
Комментарии:
Большинство пользователей Euphoria может не обращать на эту процедуру внимания. Однако, если возникли трудности при переходе в графические режимы SVGA, вы можете попытаться выполнить use_vesa(1) в начале вашей программы перед любыми вызовами функции graphics_mode().
Читать дальше