У меня возникла странная проблема при компиляции одного из моих приложений с помощью mcc-компилятора, развернутого с R2015b, поворот 3D-представлений (то есть с помощью кнопки rotate3D на панели инструментов) сейчас чрезвычайно медленный, не в случае компиляции точно такого же кода с R2013b. При запуске приложения либо в R2013b, либо в R2015b environements вращение в обоих случаях является действительно жидким/гладким.3D-ротация медленная при компиляции с помощью mcc 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 макет панели и карт, которые я использую много в моем приложении). ... Я записал данные «renderer» на всякий случай (оба opengl полностью аппаратно ускорены в скомпилированных и не скомпилированных режимах) ... но не удалось воспроизвести медленное вращение, которое у меня есть в моем скомпилированном приложении.
Итак, мне просто интересно, если кто-нибудь из вас экспериментирует с той же проблемой (3D медленнее только при компиляции с R2015b и только для некоторых приложений) ... Я думаю, что что-то не так, что я делаю, но почему это работал в R2013b и почему он все еще в норме в среде R2015b (т. е. не скомпилирован ... только скомпилированный R2015b вызывает проблему) является полной загадкой.
** Редактирование **
Я попытался активировать профилировщик при перемещении мышей в течение примерно 1 минуты для обоего составленных и не компилируются режимов, ничего особенного, кроме освежающей скорости, которая резко сокращаться в скомпилированном режиме (~ 160 вызовов в скомпилирован режима по сравнению с 4100 вызовов в режиме среды)
Подтверждено ... звонок в код Matlab не был включен в поток пользовательского интерфейса ... синхронизация решила проблему (хотя я не понимаю, почему проблема не была видна с R2013b ... в любом случае это было). – CitizenInsane