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

3D rotation slow when compiling with mcc R2015b

我在使用部署有 R2015b 的 mcc 编译器编译我的一个应用程序时遇到了一个奇怪的问题,3D 视图的旋转(即使用工具栏中的 rotate3D 按钮)现在非常慢,而在完全编译时情况并非如此与 R2013b 相同的代码。当 运行 应用程序在 R2013b 或 R2015b 环境中时,旋转实际上是 fluid/smooth 在这两种情况下。

我尝试了一个更简单的代码,相当于我的应用程序中的 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 布局面板和卡片)....我记录了 'renderer' 细节以防万一(opengl 完全硬件加速在编译模式和非编译模式)...但未能重现我在编译应用程序中的慢速旋转。

所以在这里,我只是想知道你们中是否有人正在尝试同样的问题(3D 速度仅在使用 R2015b 编译且仅适用于某些应用程序时)......我认为我做错了什么,但为什么它在 R2013b 中工作,为什么它在 R2015b 环境中仍然正常(即未编译......只有编译的 R2015b 导致问题)是一个完整的谜。

** 编辑 **

我尝试在编译模式和非编译模式下移动鼠标约 1 分钟来激活探查器,除了刷新率在编译模式下急剧下降外没有什么特别的(编译模式下约 160 次调用,环境中调用 4100 次)模式)

好的,经过多次测试,问题似乎与我 运行 为在系统托盘中使用而设计的 C# 应用程序中的 matlab 代码有关:

以下所有测试均正常:

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

仅从系统托盘 c# 应用程序调用 'csharedlib' 会导致问题。我尝试设计更简单的系统托盘应用程序并且它工作正常,所以这不是任何人的错,而是我的错,需要修复对 matlab 代码的调用(可能在错误的线程中或错误的父级接收鼠标事件)。

问题已关闭。