2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 13:16 
Запускается некая обработка данных, занимающая много времени (как правило, от 1 суток). И на каждой итерации (итераций получается от десяти тысяч, это важно) отрабатываются следующие действия:

Либо: 1) отрисовывается график (plot) в пустом графическом окне (axes), у которого (окна) параметр "nextplot" установлен в положение "add"; 2) стирается график функцией cla(axes_handle), и переходим к п.1. Для краткости назовем эти действия "анимация".

Либо: 2) создается отдельное окно figure, в нем происходит несколько сот (суб)итераций, описанных выше, поле чего окно уничтожается

Так вот, после примерно 10 000 подобных циклов происходит следующее:

а) Анимация внутри графического окна останавливается. При этом прекрасно летает курсор мыши, комп отвечает на все действия (открывает папки, запускает приложения и т.п.). Самое интересное, что если "полетать" курсором мыши над графическим окном, анимация возобновляется - и идет ровно до тех пор, пока курсор "летает" над окном (если курсор остановить над этим окном, или "летать" им в другом месте - анимация снова виснет).

б) Если открыть Диспетчер задач и вкладку быстродействия, то увидим, что обновляющиеся графики загрузки всего и вся ТОЖЕ ВИСЯТ! И Матлаб невозможно убить в процессах. Хотя комп не висит и не тормозит.

в) При нажатии на Перезагрузку компа Виндофс вначале пишет, что невозможно перезагрузиться, т.к. работает процесс soui_dummy_wnd, про который я пытался читать в инете, понял только, что soui - это какая-то китайская библиотека для создания UI, а что за soui_dummy_wnd особо не прояснилось. Исходя из прямого перевода - некое фиктивное окно, а что это? Майнер? Вирус? Adware? Я не понял. Антивирь при проверке компа ничего не находит. Если просто перезагружать комп, когда Матлаб не завис - никаких soui не всплывает, комп прекрасно перезагружается

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 13:52 
ozheredov в сообщении #1558252 писал(а):
работает процесс soui_dummy_wnd, про который я пытался читать в инете, понял только, что soui - это какая-то китайская библиотека
Люди пишут:
Цитата:
The name of the downloaded game, Game of Thrones by Chinese Developers. In doing some searching, SOUI_DUMMY_WND is connected to Chinese software.
Цитата:
Now that you mention it, I have the same problem and the game I have is also from a Chinese Software. Same company I think GTArcade. I'm playing League of Angels III but i've seen ads for Game of Thrones.
Так надо удалить игры и софт от этого производителя.
Может там что-то нехорошее внутри. А может просто софт написан кривыми руками и работает не как надо.

SOUI - это бибилиотека с открытым кодом (https://github.com/SOUI2/soui).
Сама по себе не должна проблем создавать. Но кто-то мог туда что-то добавить от себя.

А matlab - это именно matlab или octave?
Если это matlab, и если код не использует чего-то специфического для matlab, то можно попробовать в octave запустить.

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 14:03 
zykov
Так нету у меня таких игр и отродясь не было! И самое главное - почему она проявляет себя именно когда с Матлабом чудеса творятся

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 14:12 
А в Диспетчере задач с памятью всё нормально? Не забита?

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 15:59 
zykov
Динамическая отрисовка графиков в диспетчере задач тоже зависает. Но на на том отсчете, на котором зависла -- все более чем норм. Эта моя задача память не есть практически совсем.

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 16:05 
Аватара пользователя
1) получить хэндлы на линии графика и обновлять именно их (в новых версиях их можно просто к данным привязать, но с этим я не разбирался)
2) вызывать drawnow

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 22:20 
Geen в сообщении #1558270 писал(а):
1) получить хэндлы на линии графика и обновлять именно их


Кстати, это интересный вопрос. Если например на первой итерации
Используется синтаксис Matlab M
h_child = plot(h_parent, x1, y1, 'properties', 'values')
, а на второй
Используется синтаксис Matlab M
h_child = plot(h_parent, x2, y2, 'properties', 'values')
, т.е. хэндл child обновился - то вроде бы первый график (x1-y1) никуда не денется, а поверх него нарисуется второй. Поэтому объект "график" так и так придется уничтожать, а учитывая, что их там может быть много - не проще ли сразу вызвать
Используется синтаксис Matlab M
cla(h_parent)
и убить сразу всех зайцев чайлдов? Или все таки это не так работает и эта cla провоцирует баги?

Geen в сообщении #1558270 писал(а):
2) вызывать drawnow


Это есть в коде (иначе не было б анимации, он бы считал до тех пор, пока не посчитает всё)

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение24.06.2022, 00:32 
Аватара пользователя
ozheredov в сообщении #1558299 писал(а):
а на второй

не использовать plot вообще (даже на первой итерации можно без него)...

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение24.06.2022, 10:13 
Geen в сообщении #1558316 писал(а):
не использовать plot вообще


Вот это поворот! В смысле типа такого:

Используется синтаксис Matlab M
axes_handle.data = MyNewData_on_iter_k
drawnow
 


?

Geen в сообщении #1558316 писал(а):
даже на первой итерации можно без него


А это как? :shock: Поподробнее пожалуйста.

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение24.06.2022, 12:16 
Аватара пользователя
ozheredov в сообщении #1558330 писал(а):
Поподробнее пожалуйста.

Примерно так:
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
fig = findall(0,'Type','figure','Tag','fff');
if isempty(fig)
        fig = figure('MenuBar','none','Name','NNN','NumberTitle','off',...
                'BackingStore','off','Tag','fff','ResizeFcn','res(...);',...
                'Position',[150 20 1000 900]);
        % add some UI elements to control calculations
        ax = findall(fig,'Type','axes');
        if isempty(ax)
                ax = axes('Parent',fig,'Box','on','TickDir','out','XGrid','on','YGrid','on',...
                        'Units','pixels','Position',[100 30 pp(3)-130 pp(4)-60],'Color','k',...
                        'XColor',repmat(0.3,1,3),'YColor',repmat(0.3,1,3),'ZColor',repmat(0.3,1,3),...
                        'DataAspectRatio',[1 1 1],'PlotBoxAspectRatio',[1 1 1],...
                        'XLim',[-pi pi],'YLim',[-1 1]);
        end
        for i=1:n
                hln(i) = line('Parent',ax,'color',col(i,:),'Marker','.',...
                        'MarkerSize',mmsize(m(i)),'XData',r(1,i),'YData',sin(r(2,i)),...
                        'Erase','xor','LineWidth',1);
        end
else
        % find lines...
end

while ishandle(fig) && t(end)<tlim
        % calc data
        for i=1:n
                set(hln(i),'XData',r(1,i),'YData',r(2,i),'ZData',r(3,i));
        end
end
 

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение27.06.2022, 20:54 
Geen
Т.е. низкоуровневая графика. Это действительно отрисовывается быстрее, чем plot? Или откуда у Вас нелюбовь к плотУ? )

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение27.06.2022, 21:56 
Аватара пользователя
ozheredov в сообщении #1558655 писал(а):
Или откуда у Вас нелюбовь к плотУ? )

Почему нелюбовь? Если мне надо посмотреть (один) график, я использую plot или даже fplot...
ozheredov в сообщении #1558655 писал(а):
Это действительно отрисовывается быстрее, чем plot?

Самая долгая операция во всех системах это выделение/освобождение памяти (а иногда она ещё и к "потере памяти" приводит)...
Но всё зависит от того, что Вы понимаете под словам "анимация" - если это один кадр в несколько секунд, то проблем быть не должно при любом способе...

Ну и кроме того, часто надо иметь возможность как-то управлять процессом - для этого я вствляю всякие контроли в фигуру - после этого пользоваться "высокоуровневыми" функциями становится неудобно...
:mrgreen:

 
 
 
 Re: Странное влияние графики MATLAB на систему
Сообщение27.06.2022, 22:33 
Geen в сообщении #1558664 писал(а):
что Вы понимаете под словам "анимация"


Вроде как порог для матлаба - 20-30fps. Вот к нему в плотную я пытаюсь подобраться.

 
 
 [ Сообщений: 13 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group