2013-06-10 2 views
2

독립형 Matlab 응용 프로그램을 만들었습니다. Matlab 환경에서 응용 프로그램을 실행하는 것보다 빠르기를 기대했지만 실제로는 조금 느립니다 (반복 당 1.3 seg 대 반복 당 1.5 seg) MCR에 필요한 초기화 시간은 계산하지 않지만 코드는 실행합니다 . 예상되는 성능입니까, 아니면 성능 향상을 얻어야합니까? 배포 도구에서 실행 시간을 줄이는 데 도움이되는 설정을 찾지 못했습니다. MATLAB 컴파일러로 구축Matlab은 Matlab보다 긴 실행 코드를위한 UI보다 더 빠릅니까?

+1

유행어가 많음에도 불구하고이 건물 과정에 대해 거의 알 수 없습니다. 나는 기본적으로 pcode를 암호화 한 파일을 만들어서 그것을 실행하는 인상을 주었다. 그래서 나는 그것이 예상된다고 말하고 싶습니다. 거의 모든 사람들이 스피드를 위해 개발 한 후에 "적절한"언어로 옮겨가는 것처럼 보입니다. – bdecaf

답변

4

응용 프로그램은 MATLAB 내에서로 거의 정확히 같은 속도로 실행해야 사전에

감사합니다.

MATLAB 컴파일러는 C 컴파일러가 C와 동일한 방식으로 MATLAB 코드를 컴퓨터 코드로 변환하지 않습니다. MATLAB 코드를 보관하고 암호화하는 것입니다 (정확히 말하면 pcode 그것은 주석에서 알 수 있듯이), thin 실행 가능 래퍼를 생성하고, 가능하면 MATLAB Compiler Runtime (MCR)과 함께 패키징합니다. MCR은 그래픽 사용자 인터페이스없이 MATLAB 자체와 매우 유사하며 자유롭게 재배포 가능합니다.

실행 파일을 실행하면 MATLAB 코드가 Dearchives 및 Decrypts되어 MCR에 대해 실행됩니다. 결과와 속도면에서 모두 동일하게 실행되어야합니다.

아주 오래된 버전의 MATLAB Compiler (이전 버전 4.0)는 MATLAB 언어의 하위 집합을 C 코드로 변환하고이를 컴파일하는 방식이 다릅니다. 이로 인해 잠재적으로 큰 속도 향상이 가능했지만 언어의 일부만 지원되어 결과가 조심하지 않으면 때때로 달라질 수있었습니다. 비슷한 기능을 별도의 MATLAB Coder 제품에서 사용할 수 있습니다.

성능을 향상시키기 위해 수행 할 수있는 몇 가지 작은 작업이 있습니다. 예를 들어, deploytool 내에서 응용 프로그램이 사용하는 도구 상자를 지정할 수 있습니다. deploytool은 종속성 검사기를 사용하여 코드가 종속되어 있다고 생각하는 모든 MATLAB 기능을 패키지화하지만 런타임에 코드 요구 사항이 변경 될 수 있으므로 항상 정확하게 말할 수는 없습니다. 따라서주의의 측면에서 오류가 있으며 필요한 것 이상을 포함합니다. 필요한 도구 상자 만 지정하면 작업 속도가 빨라질 수 있습니다 (빌드 프로세스의 속도도 빨라집니다).

+0

종합적인 답변을 보내 주셔서 감사합니다. – Picarus

관련 문제