Нет улучшения производительности после добавления дискового кэша: QtFrameWork (4.8)

У меня есть приложение, которое нужно улучшить, добавив к нему дисковый кеш. Потому что это будет развернуто на разных устройствах в будущем. Я протестировал текущую версию с кэшированием памяти на тестовом устройстве. Как и ожидалось, первая загрузка конкретной страницы заняла около 100+ миллисекунд. После этого он уменьшился до 50-80 секунд из-за кеширования памяти. Поэтому мой следующий подход состоял в том, чтобы повысить производительность, добавив дисковый кэш. Я упоминал об этом документация как это сделать. Но после добавления дискового кэша я не вижу улучшения начального времени загрузки по сравнению с более ранней версией приложения.

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

WebPageCheck.h

bool                    m_bInitialized;             ///< state if the CWMWebPageCheck has been initialized
QUrl                    m_oUrl;                     ///< the url which has to be scanned
QStringList             m_oRequests;                ///< list of requests
QNetworkAccessManager  *m_oNetworkManager;          ///< networkmanager to start network requests
//added by Isuru for implementing the diskcache
QNetworkDiskCache      *m_oDiskCache;
CHashReplyManager       m_oReplyManager;            ///< reply manager which handles the network replies

WebPageCheck.cpp

CWMWebPageCheck::CWMWebPageCheck(QUrl oUrl)
{
m_bInitialized = false;
m_oUrl = oUrl;
qDebug() << "Starting WebPageCheck with url: " << oUrl;

m_oRequests << "scripts/scripts_WM.js";
m_oRequests << "screens_wm/logbook_wm.html";

m_oNetworkManager = new QNetworkAccessManager();
m_oDiskCache = new QNetworkDiskCache();
m_oDiskCache->setCacheDirectory(QCoreApplication::applicationDirPath() + "/cacheMachine");
m_oNetworkManager->setCache(m_oDiskCache);
connect(m_oNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*)));
connect(&m_oReplyManager, SIGNAL(sigCalculationError(Te_SealRequest)), this, SLOT(onSigCalculationError(Te_SealRequest)));
connect(&m_oReplyManager, SIGNAL(sigCalculationFinished(Te_SealRequest,QByteArray)), this, SLOT(onSigCalculationFinished(Te_SealRequest,QByteArray)));

m_oReplyManager.setCount(m_oRequests.length());
}

Было бы очень полезно, если бы кто-то мог перечислить шаги, которые я должен предпринять, чтобы включить дисковый кеш, используя Qt, объясняя использование QNetworkRequest,

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector