Просмотр исходного кода

Use QDateTime::currentDateTimeUtc instead of the non utc version

QDateTime::currentDateTime is terribly slow.
Olivier Goffart 8 лет назад
Родитель
Сommit
bbbd2319ed

+ 1 - 1
src/common/utility.cpp

@@ -465,7 +465,7 @@ static const char STOPWATCH_END_TAG[] = "_STOPWATCH_END";
 
 
 void Utility::StopWatch::start()
 void Utility::StopWatch::start()
 {
 {
-    _startTime = QDateTime::currentDateTime();
+    _startTime = QDateTime::currentDateTimeUtc();
     _timer.start();
     _timer.start();
 }
 }
 
 

+ 3 - 3
src/gui/syncrunfilelog.cpp

@@ -127,7 +127,7 @@ void SyncRunFileLog::start(const QString &folderPath)
 
 
     _totalDuration.start();
     _totalDuration.start();
     _lapDuration.start();
     _lapDuration.start();
-    _out << "#=#=#=# Syncrun started " << dateTimeStr(QDateTime::currentDateTime()) << endl;
+    _out << "#=#=#=# Syncrun started " << dateTimeStr(QDateTime::currentDateTimeUtc()) << endl;
 }
 }
 
 
 void SyncRunFileLog::logItem(const SyncFileItem &item)
 void SyncRunFileLog::logItem(const SyncFileItem &item)
@@ -172,14 +172,14 @@ void SyncRunFileLog::logItem(const SyncFileItem &item)
 
 
 void SyncRunFileLog::logLap(const QString &name)
 void SyncRunFileLog::logLap(const QString &name)
 {
 {
-    _out << "#=#=#=#=# " << name << " " << dateTimeStr(QDateTime::currentDateTime())
+    _out << "#=#=#=#=# " << name << " " << dateTimeStr(QDateTime::currentDateTimeUtc())
          << " (last step: " << _lapDuration.restart() << " msec"
          << " (last step: " << _lapDuration.restart() << " msec"
          << ", total: " << _totalDuration.elapsed() << " msec)" << endl;
          << ", total: " << _totalDuration.elapsed() << " msec)" << endl;
 }
 }
 
 
 void SyncRunFileLog::finish()
 void SyncRunFileLog::finish()
 {
 {
-    _out << "#=#=#=# Syncrun finished " << dateTimeStr(QDateTime::currentDateTime())
+    _out << "#=#=#=# Syncrun finished " << dateTimeStr(QDateTime::currentDateTimeUtc())
          << " (last step: " << _lapDuration.elapsed() << " msec"
          << " (last step: " << _lapDuration.elapsed() << " msec"
          << ", total: " << _totalDuration.elapsed() << " msec)" << endl;
          << ", total: " << _totalDuration.elapsed() << " msec)" << endl;
     _file->close();
     _file->close();

+ 1 - 1
src/libsync/cookiejar.cpp

@@ -124,7 +124,7 @@ QList<QNetworkCookie> CookieJar::removeExpired(const QList<QNetworkCookie> &cook
 {
 {
     QList<QNetworkCookie> updatedList;
     QList<QNetworkCookie> updatedList;
     foreach (const QNetworkCookie &cookie, cookies) {
     foreach (const QNetworkCookie &cookie, cookies) {
-        if (cookie.expirationDate() > QDateTime::currentDateTime() && !cookie.isSessionCookie()) {
+        if (cookie.expirationDate() > QDateTime::currentDateTimeUtc() && !cookie.isSessionCookie()) {
             updatedList << cookie;
             updatedList << cookie;
         }
         }
     }
     }

+ 2 - 2
src/libsync/logger.cpp

@@ -152,7 +152,7 @@ void Logger::mirallLog(const QString &message)
 {
 {
     Log log_;
     Log log_;
     log_.source = Log::Occ;
     log_.source = Log::Occ;
-    log_.timeStamp = QDateTime::currentDateTime();
+    log_.timeStamp = QDateTime::currentDateTimeUtc();
     log_.message = message;
     log_.message = message;
 
 
     Logger::instance()->log(log_);
     Logger::instance()->log(log_);
@@ -236,7 +236,7 @@ void Logger::enterNextLogFile()
             QDir::Files);
             QDir::Files);
         QRegExp rx("owncloud.log.(\\d+)");
         QRegExp rx("owncloud.log.(\\d+)");
         uint maxNumber = 0;
         uint maxNumber = 0;
-        QDateTime now = QDateTime::currentDateTime();
+        QDateTime now = QDateTime::currentDateTimeUtc();
         foreach (const QString &s, files) {
         foreach (const QString &s, files) {
             if (rx.exactMatch(s)) {
             if (rx.exactMatch(s)) {
                 maxNumber = qMax(maxNumber, rx.cap(1).toUInt());
                 maxNumber = qMax(maxNumber, rx.cap(1).toUInt());

+ 2 - 2
src/libsync/owncloudpropagator.cpp

@@ -138,7 +138,7 @@ static SyncJournalErrorBlacklistRecord createBlacklistEntry(
     entry._errorString = item._errorString;
     entry._errorString = item._errorString;
     entry._lastTryModtime = item._modtime;
     entry._lastTryModtime = item._modtime;
     entry._lastTryEtag = item._etag;
     entry._lastTryEtag = item._etag;
-    entry._lastTryTime = Utility::qDateTimeToTime_t(QDateTime::currentDateTime());
+    entry._lastTryTime = Utility::qDateTimeToTime_t(QDateTime::currentDateTimeUtc());
     entry._renameTarget = item._renameTarget;
     entry._renameTarget = item._renameTarget;
     entry._retryCount = old._retryCount + 1;
     entry._retryCount = old._retryCount + 1;
 
 
@@ -309,7 +309,7 @@ bool PropagateItemJob::checkForProblemsWithShared(int httpStatusCode, const QStr
 
 
                 // HACK to avoid continuation: See task #1448:  We do not know the _modtime from the
                 // HACK to avoid continuation: See task #1448:  We do not know the _modtime from the
                 //  server, at this point, so just set the current one. (rather than the one locally)
                 //  server, at this point, so just set the current one. (rather than the one locally)
-                downloadItem->_modtime = Utility::qDateTimeToTime_t(QDateTime::currentDateTime());
+                downloadItem->_modtime = Utility::qDateTimeToTime_t(QDateTime::currentDateTimeUtc());
             } else {
             } else {
                 // the file was removed or renamed, just recover the old one
                 // the file was removed or renamed, just recover the old one
                 downloadItem->_instruction = CSYNC_INSTRUCTION_SYNC;
                 downloadItem->_instruction = CSYNC_INSTRUCTION_SYNC;

+ 1 - 1
src/libsync/propagatedownload.cpp

@@ -673,7 +673,7 @@ namespace { // Anonymous namespace for the recall feature
             dotLocation = recallFileName.size();
             dotLocation = recallFileName.size();
         }
         }
 
 
-        QString timeString = QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss");
+        QString timeString = QDateTime::currentDateTimeUtc().toString("yyyyMMdd-hhmmss");
         recallFileName.insert(dotLocation, "_.sys.admin#recall#-" + timeString);
         recallFileName.insert(dotLocation, "_.sys.admin#recall#-" + timeString);
 
 
         return recallFileName;
         return recallFileName;

+ 1 - 1
src/libsync/propagateupload.cpp

@@ -53,7 +53,7 @@ Q_LOGGING_CATEGORY(lcPropagateUpload, "sync.propagator.upload", QtInfoMsg)
 static bool fileIsStillChanging(const SyncFileItem &item)
 static bool fileIsStillChanging(const SyncFileItem &item)
 {
 {
     const QDateTime modtime = Utility::qDateTimeFromTime_t(item._modtime);
     const QDateTime modtime = Utility::qDateTimeFromTime_t(item._modtime);
-    const qint64 msSinceMod = modtime.msecsTo(QDateTime::currentDateTime());
+    const qint64 msSinceMod = modtime.msecsTo(QDateTime::currentDateTimeUtc());
 
 
     return msSinceMod < SyncEngine::minimumFileAgeForUpload
     return msSinceMod < SyncEngine::minimumFileAgeForUpload
         // if the mtime is too much in the future we *do* upload the file
         // if the mtime is too much in the future we *do* upload the file

+ 1 - 1
src/libsync/syncengine.cpp

@@ -219,7 +219,7 @@ bool SyncEngine::checkErrorBlacklisting(SyncFileItem &item)
     item._hasBlacklistEntry = true;
     item._hasBlacklistEntry = true;
 
 
     // If duration has expired, it's not blacklisted anymore
     // If duration has expired, it's not blacklisted anymore
-    time_t now = Utility::qDateTimeToTime_t(QDateTime::currentDateTime());
+    time_t now = Utility::qDateTimeToTime_t(QDateTime::currentDateTimeUtc());
     if (now >= entry._lastTryTime + entry._ignoreDuration) {
     if (now >= entry._lastTryTime + entry._ignoreDuration) {
         qCInfo(lcEngine) << "blacklist entry for " << item._file << " has expired!";
         qCInfo(lcEngine) << "blacklist entry for " << item._file << " has expired!";
         return false;
         return false;

+ 1 - 1
src/libsync/syncresult.cpp

@@ -85,7 +85,7 @@ QString SyncResult::statusString() const
 void SyncResult::setStatus(Status stat)
 void SyncResult::setStatus(Status stat)
 {
 {
     _status = stat;
     _status = stat;
-    _syncTime = QDateTime::currentDateTime();
+    _syncTime = QDateTime::currentDateTimeUtc();
 }
 }
 
 
 QDateTime SyncResult::syncTime() const
 QDateTime SyncResult::syncTime() const

+ 1 - 1
test/mockserver/httpserver.cpp

@@ -32,7 +32,7 @@ void HttpServer::readClient()
                 "Content-Type: text/html; charset=\"utf-8\"\r\n"
                 "Content-Type: text/html; charset=\"utf-8\"\r\n"
                 "\r\n"
                 "\r\n"
                 "<h1>Nothing to see here</h1>\n"
                 "<h1>Nothing to see here</h1>\n"
-                << QDateTime::currentDateTime().toString() << "\n";
+                << QDateTime::currentDateTimeUtc().toString() << "\n";
             socket->close();
             socket->close();
 
 
             QtServiceBase::instance()->logMessage("Wrote to client");
             QtServiceBase::instance()->logMessage("Wrote to client");

+ 2 - 2
test/syncenginetestutils.h

@@ -41,7 +41,7 @@ inline QString getFilePathFromUrl(const QUrl &url) {
 
 
 
 
 inline QString generateEtag() {
 inline QString generateEtag() {
-    return QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch(), 16);
+    return QString::number(QDateTime::currentDateTimeUtc().toMSecsSinceEpoch(), 16);
 }
 }
 inline QByteArray generateFileId() {
 inline QByteArray generateFileId() {
     return QByteArray::number(qrand(), 16);
     return QByteArray::number(qrand(), 16);
@@ -97,7 +97,7 @@ public:
         file.write(buf.data(), size % buf.size());
         file.write(buf.data(), size % buf.size());
         file.close();
         file.close();
         // Set the mtime 30 seconds in the past, for some tests that need to make sure that the mtime differs.
         // Set the mtime 30 seconds in the past, for some tests that need to make sure that the mtime differs.
-        OCC::FileSystem::setModTime(file.fileName(), OCC::Utility::qDateTimeToTime_t(QDateTime::currentDateTime().addSecs(-30)));
+        OCC::FileSystem::setModTime(file.fileName(), OCC::Utility::qDateTimeToTime_t(QDateTime::currentDateTimeUtc().addSecs(-30)));
         QCOMPARE(file.size(), size);
         QCOMPARE(file.size(), size);
     }
     }
     void setContents(const QString &relativePath, char contentChar) override {
     void setContents(const QString &relativePath, char contentChar) override {

+ 4 - 4
test/testsyncengine.cpp

@@ -358,7 +358,7 @@ private slots:
         FileInfo &remoteInfo = dynamic_cast<FileInfo &>(fakeFolder.remoteModifier());
         FileInfo &remoteInfo = dynamic_cast<FileInfo &>(fakeFolder.remoteModifier());
 
 
         // Base mtime with no ms content (filesystem is seconds only)
         // Base mtime with no ms content (filesystem is seconds only)
-        auto mtime = QDateTime::currentDateTime().addDays(-4);
+        auto mtime = QDateTime::currentDateTimeUtc().addDays(-4);
         mtime.setMSecsSinceEpoch(mtime.toMSecsSinceEpoch() / 1000 * 1000);
         mtime.setMSecsSinceEpoch(mtime.toMSecsSinceEpoch() / 1000 * 1000);
 
 
         // Conflict: Same content, mtime, but no server checksum
         // Conflict: Same content, mtime, but no server checksum
@@ -414,9 +414,9 @@ private slots:
      */
      */
     void testSyncFileItemProperties()
     void testSyncFileItemProperties()
     {
     {
-        auto initialMtime = QDateTime::currentDateTime().addDays(-7);
-        auto changedMtime = QDateTime::currentDateTime().addDays(-4);
-        auto changedMtime2 = QDateTime::currentDateTime().addDays(-3);
+        auto initialMtime = QDateTime::currentDateTimeUtc().addDays(-7);
+        auto changedMtime = QDateTime::currentDateTimeUtc().addDays(-4);
+        auto changedMtime2 = QDateTime::currentDateTimeUtc().addDays(-3);
 
 
         // Base mtime with no ms content (filesystem is seconds only)
         // Base mtime with no ms content (filesystem is seconds only)
         initialMtime.setMSecsSinceEpoch(initialMtime.toMSecsSinceEpoch() / 1000 * 1000);
         initialMtime.setMSecsSinceEpoch(initialMtime.toMSecsSinceEpoch() / 1000 * 1000);