diff --git a/src/blackmisc/collection.h b/src/blackmisc/collection.h index 14dae1425..179ae98a9 100644 --- a/src/blackmisc/collection.h +++ b/src/blackmisc/collection.h @@ -262,6 +262,9 @@ namespace BlackMisc return this->to(QList()); } + //! \private Calls detach on the internal QMap. + void detach() { m_impl.detach(); } + //! Test for equality. bool operator ==(const CCollection &other) const { return m_impl == other.m_impl; } diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 1feaff4ae..83a218f27 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -533,6 +533,9 @@ namespace BlackMisc return separateBy([k](const T &v) { return v.*k; }); } + //! \private Calls detach on the internal QVector. + void detach() { m_impl.detach(); } + //! Equals operator. friend bool operator ==(const CSequence &a, const CSequence &b) { return a.m_impl == b.m_impl; } diff --git a/tests/blackmisc/aviation/testaircraftsituation/testaircraftsituation.cpp b/tests/blackmisc/aviation/testaircraftsituation/testaircraftsituation.cpp index 0a7f74e9b..75bf70b91 100644 --- a/tests/blackmisc/aviation/testaircraftsituation/testaircraftsituation.cpp +++ b/tests/blackmisc/aviation/testaircraftsituation/testaircraftsituation.cpp @@ -229,7 +229,7 @@ namespace BlackMiscTest void CTestAircraftSituation::sortHint() { - constexpr int Max = 500000; + constexpr int Max = 50000; CAircraftSituationList situations = testSituations(); situations.sortAdjustedLatestFirst(); CSequence listOfLists1; @@ -238,6 +238,8 @@ namespace BlackMiscTest { listOfLists1.push_back(situations); listOfLists2.push_back(situations); + listOfLists1.back().detach(); + listOfLists2.back().detach(); listOfLists2.back().setAdjustedSortHint(CAircraftSituationList::AdjustedTimestampLatestFirst); } @@ -261,11 +263,12 @@ namespace BlackMiscTest const int hint = time.elapsed(); const double ratio = static_cast(hint) / static_cast(noHint); // expected <1.0 - qDebug() << "MacOS:" << boolToYesNo(CBuildConfig::isRunningOnMacOSPlatform()); + //qDebug() << "MacOS:" << boolToYesNo(CBuildConfig::isRunningOnMacOSPlatform()); qDebug() << "Access without hint" << noHint << "ms"; qDebug() << "Access with hint" << hint << "ms"; qDebug() << "Access ratio" << ratio; +#if 0 // remark On Win/Linux access with hint is faster // on MacOS the times are the same, maybe with hint it is even slightly slower if (noHint >= hint) @@ -281,6 +284,7 @@ namespace BlackMiscTest return; } } +#endif QVERIFY2(hint <= noHint, "Expected hinted sort being faster"); }