summaryrefslogtreecommitdiff
path: root/src/lib/corelib/tools/qttools.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-06-25 19:45:21 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-06-29 08:11:49 +0000
commit07bf66a03e775aeb9f46f46204e6633398b650a5 (patch)
treee50b4cc6152363ecef507c4fd22a2641100c6f2d /src/lib/corelib/tools/qttools.cpp
parentfac2f0af3d8a051bba02fe448e984a3c0e66739f (diff)
downloadqbs-07bf66a03e775aeb9f46f46204e6633398b650a5.tar.gz
Persistence: Cache more data structures
Use the id-based approach also for QStringList and QProcessEnvironment, in addition to QString. We can expect a lot of identical values for these types. ========== Performance data for Rule Execution ========== Old instruction count: 2700402363 New instruction count: 2693099541 Relative change: -1 % Old peak memory usage: 20689488 Bytes New peak memory usage: 20258088 Bytes Relative change: -3 % ========== Performance data for Null Build ========== Old instruction count: 552917395 New instruction count: 526394115 Relative change: -5 % Old peak memory usage: 15552336 Bytes New peak memory usage: 14840848 Bytes Relative change: -5 % Change-Id: I9cdf7910240dbbadda7b383ded1c6788ac66d232 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/tools/qttools.cpp')
-rw-r--r--src/lib/corelib/tools/qttools.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/corelib/tools/qttools.cpp b/src/lib/corelib/tools/qttools.cpp
index 4e20a7f45..ffd336d56 100644
--- a/src/lib/corelib/tools/qttools.cpp
+++ b/src/lib/corelib/tools/qttools.cpp
@@ -39,7 +39,10 @@
#include "qttools.h"
+#include <QtCore/qprocess.h>
+
QT_BEGIN_NAMESPACE
+
uint qHash(const QStringList &list)
{
uint s = 0;
@@ -47,4 +50,10 @@ uint qHash(const QStringList &list)
s ^= qHash(n) + 0x9e3779b9 + (s << 6) + (s >> 2);
return s;
}
+
+uint qHash(const QProcessEnvironment &env)
+{
+ return qHash(env.toStringList());
+}
+
QT_END_NAMESPACE