2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 13:16 


10/03/16
3995
Aeroport
Запускается некая обработка данных, занимающая много времени (как правило, от 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 


18/09/21
1682
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 


10/03/16
3995
Aeroport
zykov
Так нету у меня таких игр и отродясь не было! И самое главное - почему она проявляет себя именно когда с Матлабом чудеса творятся

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 14:12 


18/09/21
1682
А в Диспетчере задач с памятью всё нормально? Не забита?

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 15:59 


10/03/16
3995
Aeroport
zykov
Динамическая отрисовка графиков в диспетчере задач тоже зависает. Но на на том отсчете, на котором зависла -- все более чем норм. Эта моя задача память не есть практически совсем.

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 16:05 
Заслуженный участник
Аватара пользователя


01/09/13
4318
1) получить хэндлы на линии графика и обновлять именно их (в новых версиях их можно просто к данным привязать, но с этим я не разбирался)
2) вызывать drawnow

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение23.06.2022, 22:20 


10/03/16
3995
Aeroport
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 
Заслуженный участник
Аватара пользователя


01/09/13
4318
ozheredov в сообщении #1558299 писал(а):
а на второй

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

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение24.06.2022, 10:13 


10/03/16
3995
Aeroport
Geen в сообщении #1558316 писал(а):
не использовать plot вообще


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

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


?

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


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

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение24.06.2022, 12:16 
Заслуженный участник
Аватара пользователя


01/09/13
4318
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 


10/03/16
3995
Aeroport
Geen
Т.е. низкоуровневая графика. Это действительно отрисовывается быстрее, чем plot? Или откуда у Вас нелюбовь к плотУ? )

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение27.06.2022, 21:56 
Заслуженный участник
Аватара пользователя


01/09/13
4318
ozheredov в сообщении #1558655 писал(а):
Или откуда у Вас нелюбовь к плотУ? )

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

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

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

 Профиль  
                  
 
 Re: Странное влияние графики MATLAB на систему
Сообщение27.06.2022, 22:33 


10/03/16
3995
Aeroport
Geen в сообщении #1558664 писал(а):
что Вы понимаете под словам "анимация"


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group