2013-02-06 2 views
0

.NET 어셈블리 파일에 프로젝트를 배포했습니다. 하나의 주 기능 파일 (.m 파일)이 클래스 섹션으로 드래그되었습니다. 세 개의 도우미 파일이 공유 리소스 섹션으로 드래그되었습니다.Matlab Builder NE

설정에서 모든 도구 상자 경로가 선택됩니다. 내 주요 기능에서는 Neural Toolbox의 norc 만 사용했습니다. 어셈블리 파일을 만들면 12MB로 끝납니다.

내 기본 WPF 프로젝트에서 참조한 후 로딩 시간은 참을 수 없으며 일부 계산을 수행 할 때마다 계산에 약 10 초가 소요됩니다.

Matlab에서이 기능을 실행하면 2 초 이내에 완료됩니다.

현재 총 1 개의 큰 .asl 어셈블리 파일과 2) 심각한 성능 저하 문제가 있습니다.

Win7과 Matlab 2012b를 사용하고 있습니다. 누구든지 그런 문제에 직면 해 그들을 풀어 봤나?

+0

4 개의 파일과 파일이 사용하는 파일의 크기는 어느 정도입니까? 그리고 도우미 파일을 수동으로 추가해야합니까, 아마도 이중 파일이 있을까요? 나는 항상 모든 체크를 유지하고 dll이 결코 그렇게 크게 나오지 않기 때문에 툴박스 검사가 차이를 만든다고 생각하지 않는다. 성능 정보 : 두 경우 모두 동일한 양의 CPU 사용이 발생하는지 여부를 확인할 수 있으며 둘 다 로컬 드라이브에 사용됩니까? –

+0

내 파일은 40KB입니다. 나는 모든 툴박스가 체크 된 이전 버전의 MATLAB을 리콜했다. DLL은 47kb 뿐이었다. – ikel

답변

1

도구 상자를 선택했는지 여부에 따라 결과적으로 큰 차이가 발생할 수 있습니다. 특히 많은 수의 도구 상자가있는 경우 특히 그렇습니다. 의존성 검사기는 코드가 호출하는 기능을 항상 정확하게 결정할 수는 없으므로 (런타임에 많은 요소에 의존 할 수 있음) 코드에서 호출 할 수있는 최대 집합을 포함합니다. 사용하지 않는 불필요한 도구 상자의 선택을 취소하면 포함 된 항목의 수를 줄이거 나 때로는 상당히 크게 줄일 수 있습니다.

그러나 그럼에도 불구하고 상당히 많은 내용을 포함 할 필요가있을 수 있으며 크기가 클 수도 있습니다.

.NET 코드가 MATLAB에서 배포 된 .NET 어셈블리를 호출하면 MCR을 시작해야합니다.이 작업은 (MATLAB 자체만큼 오래 걸릴 수 있습니다.) 필요한 모든 작업을 수행 할 수 있습니다. 호출간에 구성 요소를 참조하는 변수를 유지할 수 있으면 해당 시작 비용을 한 번만받습니다.

+0

변수를 살아있는 구성 요소로 유지하고 있는가? 나는 한 번 Matlab 객체를 참조했다. 함수 호출 내에서만 MWArray 객체를 가지고 있고 그 함수 호출은 매 초마다 발생합니다. 이 문제를 언급하셨습니까? – ikel

+0

감사합니다. 나는 당신의 제안에 따라 이슈를 분류했다. – ikel