R2015b でデプロイされた mcc コンパイラを使用してアプリケーションの 1 つをコンパイルすると、奇妙な問題が発生します。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 回の呼び出し)。