Приложения, созданные с помощью компилятора MATLAB, должны выполняться практически с той же скоростью, что и в MATLAB.
Компилятор MATLAB не преобразует ваш код MATLAB в машинный код так же, как компилятор C делает для C.Что он делает, так это архивирует и шифрует ваш код MATLAB (обратите внимание, он правильно шифрует его, а не просто pcode
s, как предполагает комментарий ), создайте тонкую исполняемую оболочку и упакуйте их вместе, возможно, также с MATLAB Compiler Runtime (MCR). MCR очень похож на сам MATLAB, без графического пользовательского интерфейса и свободно распространяемый.
Когда вы запускаете исполняемый файл, он деархивирует и расшифровывает ваш код MATLAB и запускает его против MCR. Он должен работать точно так же, как с точки зрения результатов, так и с точки зрения скорости.
Очень старые версии MATLAB Compiler (до версии 4.0) работали по-другому, преобразовывая подмножество языка MATLAB в код C и компилируя его. Это обеспечило потенциально значительное ускорение, но поддерживалось только подмножество языка, и результаты, если вы не были осторожны, иногда могли быть другими. Аналогичная функциональность теперь доступна в отдельном продукте MATLAB Coder.
Есть несколько небольших вещей, которые вы можете сделать для повышения производительности: например, в deploytool
вы можете указать, какие наборы инструментов использует ваше приложение. deploytool
использует средство проверки зависимостей для упаковки всех функций MATLAB, от которых, по его мнению, может зависеть ваш код, но он не всегда может сказать точно, поскольку функции, необходимые вашему коду, могут измениться во время выполнения. Поэтому он проявляет осторожность и включает больше, чем необходимо. Указав только те наборы инструментов, которые, как вы знаете, необходимы, вы можете немного ускорить процесс (это также немного ускоряет процесс сборки).
person
Sam Roberts
schedule
10.06.2013