Создание Р-кодов

Когда встречается сценарий или функция в виде 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 (но оставить рр.р!) и снова запустить программу. Ваши слишком любопытные коллеги едва ли разберутся с тем, что записано в машинных кодах файла рр.р, хотя с помощью специальных программ (декомпиляторов) такая возможность реализуется.


Warning: require_once(/var/www/u0033082/data/www/kokos13.ru/www.matlabsoft.ru/3d40b281efbf7e201223173b1a015a7e/sape.php): failed to open stream: No such file or directory in /var/www/u0033082/data/www/kokos13.ru/matlabsoft.ru/numpag20/Index20.php on line 221

Fatal error: require_once(): Failed opening required '/var/www/u0033082/data/www/kokos13.ru/www.matlabsoft.ru/3d40b281efbf7e201223173b1a015a7e/sape.php' (include_path='.:') in /var/www/u0033082/data/www/kokos13.ru/matlabsoft.ru/numpag20/Index20.php on line 221