Russian Qt Forum
Октябрь 17, 2017, 14:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Увеличение времени работы при минимизации приложения  (Прочитано 2153 раз)
XimXim
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #15 : Май 18, 2017, 13:56 »

А кто даст нитке 100% процессорного времени? Всё-таки в системе и другие процессы имеются. Мне казалось, что Process Explorer показывает процент от общего использования.

Интересно как раз почему CPU usage падает в несколько раз при сворачивании приложения. Поток как-то выполняться по-другому стал? На мой взгляд, в нём выполняются всё те же операции.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2570


Просмотр профиля
« Ответ #16 : Май 18, 2017, 14:16 »

А "запилить" простенький компилябельный пример/тест, который воспроизводит проблему, можно?
Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 9816


Просмотр профиля
« Ответ #17 : Май 18, 2017, 14:16 »

А кто даст нитке 100% процессорного времени? Всё-таки в системе и другие процессы имеются. Мне казалось, что Process Explorer показывает процент от общего использования.
Не любитель Вындоуз, как там не знаю. В моем ОС 100% соответствует одному ядру. Напр процесс потребляет 360% - значит использует почти все из 4 ядер.  Др процессы конечно есть, но в нормальном состоянии потребляют очень немного - до 10% далеко
Записан
XimXim
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #18 : Май 19, 2017, 08:38 »

Проблема оказалась в использовании QThread::usleep внутри потока.

Я приостанавливал второй поток для того, чтобы дать возможность главному отрисовать форму и обновить прогресс операции.
Видимо это была не самая лучшая идея, хотя всё работало хорошо в не свёрнутом приложении. Это же и объясняет малое потребление процесорного времени.
В документации QT сказано:
Цитировать
Instead of the sleep() functions, consider using QTimer.
Буду использовать его.

Осталось понять, что же происходит при использовании QThread::usleep.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5634


Жаждущий знаний


Просмотр профиля
« Ответ #19 : Май 19, 2017, 08:54 »

Эм. Зачем вообще sleep? Главный поток не зависит от твоего, главное только, чтобы ты ему отдавал данные исключетельно через сигналы.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
-------------------------------
https://twitter.com/panter_dsd
https://facebook.com/panter.dsd
XimXim
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #20 : Май 19, 2017, 09:00 »

Слишком часто слал сигнал. При перетаскивании формы наблюдались лаги. Ничего умнее sleep не придумал  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5634


Жаждущий знаний


Просмотр профиля
« Ответ #21 : Май 19, 2017, 09:43 »

Шли реже. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
-------------------------------
https://twitter.com/panter_dsd
https://facebook.com/panter.dsd
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 1940



Просмотр профиля
« Ответ #22 : Май 19, 2017, 21:46 »

Есть такая вещь, по крайней мере под виндой, больший приоритет отдаётся активному приложению. Видел пример работы одной программы с выполнением визуальной функции. Было запущено 2 экземпляра. Тот, что был в фокусе получал больше квантов, как только фокус менялся - менялся и приоритет. К сожалению, как связано это с теми приоритетами, что выставляются в менеджере процессов я не знаю.
Записан
Alex Custov
Джедай : наставник для всех
*******
Online Online

Сообщений: 1993


Просмотр профиля
« Ответ #23 : Июнь 02, 2017, 15:01 »

Кстати, помню такую плюху - Кьют освобождал память при сворачивании окна под Виндой. Как сейчас не знаю.

так это вроде давнишняя фишка винды, что при сворачивании освобождается память. Ещё в начале 2000-х ходили всякие шуточки по этому поводу.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.052 секунд. Запросов: 23.