Создание
Р-кодов
Когда встречается
сценарий или функция в виде m-файла, то всякий раз выполняется трансляция файлов,
создающая так называемые Р-коды (псевдокоды). Она связана с синтаксическим контролем
сценария или функции, который несколько замедляет вычисления. Временные Р-коды
хранятся в памяти только до использования команды clear или завершения сеанса
работы. Кроме того, MATLAB позволяет явно создавать и хранить Р-коды сценариев
и функций с помощью команды pcode: pcode имена_М-файлов
pcode
*.m создает файлы р-кодов для всех m-файлов данной папки, pcode с дополнительным
параметром - inplace — хранит эти файлы в тех же папках, что и исходные m-файлы.
Особенно полезно
применение этой команды в том случае, когда используется сложная дескрипторная
графика и средства создания GUI. В этом случае выигрыш по скорости выполнения
вычислений может быть заметным. Переход к Р-кодам полезен, если пользователь
желает скрыть созданный им m-файл и реализованные в нем идеи и алгоритмы. Файл
с Р-кодами имеет расширение .р. Размер файла с Р-кодами обычно больше, чем размер
m-файла.Рассмотрим следующий пример — создадим файл-сценарий pp.m следующего
содержания:
told=cputime;
х=-15:.0001:15;
plot(x,sin(x))
t=cputime-told
Эта программа
строит график функции
sin(x)
по большому числу точек. Кроме того, она
вычисляет время выполнения данного сценария в секундах. При первом пуске получим:
»
рр
t=
0.4400
Теперь выполним
создание Р-кодов и вновь запустим программу:
»
pcode рр
» рр
t=
0.3900
» рр
t =
0.3300
Нетрудно заметить,
что после преобразования в Р-коды время построения графика несколько уменьшилось.
Но гораздо важнее то, что теперь вы можете стереть файл pp.m (но оставить рр.р!)
и снова запустить программу. Ваши слишком любопытные коллеги едва ли разберутся
с тем, что записано в машинных кодах файла рр.р, хотя с помощью специальных
программ (декомпиляторов) такая возможность реализуется.
Содержание раздела