使用mcc编译时3D旋转速度慢R2015b

问题描述:

编译我的一个应用程序时,使用R2015b部署的mcc编译器,3D视图的旋转(即在工具栏中使用rotate3D按钮)现在速度非常慢,这是一个奇怪的问题,而不是在编译与R2013b完全相同的代码时。在R2013b或R2015b环境中运行应用程序时,旋转在两种情况下都非常流畅/平滑。使用mcc编译时3D旋转速度慢R2015b

我想一个更简单的代码等同于3D我在我的应用程序:

function [] = TestCompiledRotationR2015b() 
%[ 
    % Create random data 
    azimuths = linspace(0, 359, 360) * pi/180; 
    elevations = linspace(0, 180, 181) * pi/180; 
    [A, E] = ndgrid(azimuths, elevations); 
    Data = sin(7*(E-pi/2))./(7*(E-pi/2)); 
    Data(isnan(Data)) = 1; 
    Data = Data .* abs(cos(0.5*A)); 

    ff = figure(42); 
    X = cos(A) .* sin(E); 
    Y = sin(A) .* sin(E); 
    Z = cos(E); 
    surf(X, Y, Z, abs(Data)); 

    % Set axes properties 
    shading flat; 
    set(gca, 'DataAspectRatio', [1 1 1]); 
    set(gca, 'Visible', 'off'); 
    xlim([-1 1]); 
    ylim([-1 1]); 
    zlim([-1 1]); 

    uiwait(ff); 
%] 

我也试图与更复杂的一个(使用GUI布局板和卡,我在我的应用程序中使用了很多)。 ...我记录了'渲染'的细节,以防万一(在编译和非编译模式下opengl完全硬件加速)......但未能重现我编译的应用程序中的慢速旋转。

所以在这里,我只是想知道,如果你们中的任何尝试是同一个问题(3D不仅速度慢时R2015b且仅用于某些应用程序编译)......我觉得有什么不对,我做的,但为什么它在R2013b中工作,为什么它在R2015b环境中仍然可用(即未编译...仅编译R2015b引起问题)是一个完整的谜团。

**编辑**

我试图激活探查移动鼠标时约1分钟两种编译和未编译模式,没有什么特别的,除了它在编译模式(大幅减少刷新率〜160个电话在编制模式与环境模式4100个话费)

Profiler

好吧,经过多次试验,这一切看来,这个问题被链接到我正在从专为C#应用程序的MATLAB代码的事实在系统托盘中使用:

以下所有测试都ok:

  • 创建可执行直接与mcc -m TestLaunchMyApplication.m
  • 创建csharedlib并从基本的主代码中调用在C
  • 创建csharedlib,并从基本的C#winform应用程序调用它

只从系统托盘c#app调用'csharedlib'会导致问题。我尝试设计更简单的系统托盘应用程序,它工作正常,所以这是没有人的错,但我的,并需要修复调用matlab代码(可能在错误的线程或错误地接收鼠标事件parented)。

发行已结束。

+0

确认...调用matlab代码是不是在UI线程...同步解决了这个问题(虽然我不明白为什么问题是不可见的R2013b ......无论如何是这样)。 – CitizenInsane