使用 R2015b 部署的 mcc 编译器编译我的一个应用程序时遇到一个奇怪的问题,3D 视图的旋转(即使用工具栏中的 rotate3D 按钮)现在非常慢,而使用 R2013b 编译完全相同的代码时并非如此. 在 R2013b 或 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 在编译和非编译模式下完全硬件加速)。 ..但未能重现我在编译的应用程序中的慢速旋转。
所以在这里,我只是想知道你们中是否有人在尝试同样的问题(仅在使用 R2015b 和某些应用程序编译时 3D 缓慢)......我认为我做错了什么,但为什么它在 R2013b 中工作以及为什么在 R2015b 环境中仍然可以(即未编译...仅编译的 R2015b 导致问题)完全是个谜。
** 编辑 **
我尝试在已编译和未编译模式下移动鼠标约 1 分钟时激活分析器,除了在编译模式下急剧下降的刷新率(在编译模式下约 160 次调用与环境模式下 4100 次调用)外,没有什么特别的