Qt에서 QNetworkAccessManager 개체를 만든 후에 다른 응용 프로그램 (멀티 플레이어 게임과 같이 네트워크를 많이 사용하는 응용 프로그램)이 느리게 실행됩니다.(Qt) QNetworkAccessManager가 다른 응용 프로그램의 속도를 느리게합니다.
예를 들어 내 앱을 배경으로 실행하는 동안 Dota2를 실행하면 내 Qt 앱이 매우 밝을지라도 게임이 지연되기 시작합니다 (프로세스 탐색기를 통해 확인한 결과 1 % 미만의 CPU 사용량 만 소비합니다)). QNetworkAccessManager 부분을 코드에서 제거하면 지연없이 게임이 원활하게 실행됩니다.
다음은 QNetworkAccessManager를 사용하는 방법입니다.
QNetworkAccessManager *qnam = new QNetworkAccessManager(this);
response = qnam->get(QNetworkRequest(url));
connect(response , &QNetworkReply::finished, this, &Test::parse_response);
그리고 parse_response()에서
void parse_response() {
// Network Error occured
if (response->error() != QNetworkReply::NoError) {
response->deleteLater();
return;
}
response->deleteLater();
qnam->deleteLater();
}
재미있는 것은 내가 프로세스 탐색기를 통해 내 애플 리케이션의/O 사용량 I을 확인할 때, 그것은 I/O 사용에 이상한 활동을 보여주고 있다는 점이다
QNetworkAccessManager를 사용하지 않을 때 이상한 I/O 사용이 사라집니다. 그러므로 나는 내 qnam이 성공적으로 삭제되지 않았지만 내 코드에서 어떤 문제도 찾을 수 없다고 가정합니다.
이 문제와 비슷한 경험이있는 사람이 있습니까? QNetworkAccessManager의 사용법이 잘못 구성 되었습니까?
QNetworkAccessManager 자체는 컴퓨터 부하에 문제를 일으키지 않을 것입니다. 'QNetworkAccessManager'가 정확히 무엇을하고 있는지 그리고 얼마나 자주 사용되는지 조사해야합니다. – hank
아니요. 모든 코드를 제거하고 QNetworkAccessManager 개체를 만들었을 때 동일한 결과가 나타났습니다. – Jaebum