Blame 0017-Optimize-Only-do-one-hash-lookup-to-retrieve-value-f.patch
|
Rex Dieter |
adf30af |
From 202ffa522668087cc133026febf21a7de8963218 Mon Sep 17 00:00:00 2001
|
|
Rex Dieter |
adf30af |
From: Milian Wolff <mail@milianw.de>
|
|
Rex Dieter |
adf30af |
Date: Mon, 1 Dec 2014 11:51:04 +0100
|
|
Rex Dieter |
adf30af |
Subject: [PATCH 17/30] Optimize: Only do one hash lookup to retrieve value
|
|
Rex Dieter |
adf30af |
from cache.
|
|
Rex Dieter |
adf30af |
|
|
Rex Dieter |
adf30af |
Compilers do not merge the call to contains() and the successive
|
|
Rex Dieter |
adf30af |
value() lookup. Using iterators thus saves us one QHash lookup.
|
|
Rex Dieter |
adf30af |
---
|
|
Rex Dieter |
adf30af |
server/src/storage/entities.xsl | 6 +++---
|
|
Rex Dieter |
adf30af |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
Rex Dieter |
adf30af |
|
|
Rex Dieter |
adf30af |
diff --git a/server/src/storage/entities.xsl b/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30af |
index a397544..9471293 100644
|
|
Rex Dieter |
adf30af |
--- a/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30af |
+++ b/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30af |
@@ -168,9 +168,9 @@ set<xsl:value-of select="$methodName"/>( <xsl:call-template name="argument"/> )
|
|
Rex Dieter |
adf30af |
<xsl:if test="$cache != ''">
|
|
Rex Dieter |
adf30af |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30af |
QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30af |
- if ( Private::<xsl:value-of select="$cache"/>.contains( <xsl:value-of select="$key"/> ) ) {
|
|
Rex Dieter |
adf30af |
- const <xsl:value-of select="$className"/> tmp = Private::<xsl:value-of select="$cache"/>.value( <xsl:value-of select="$key"/> );
|
|
Rex Dieter |
adf30af |
- return tmp;
|
|
Rex Dieter |
adf30af |
+ QHash<<xsl:value-of select="column[@name = $key]/@type"/>, <xsl:value-of select="$className"/>>::const_iterator it = Private::<xsl:value-of select="$cache"/>.constFind(<xsl:value-of select="$key"/>);
|
|
Rex Dieter |
adf30af |
+ if ( it != Private::<xsl:value-of select="$cache"/>.constEnd() ) {
|
|
Rex Dieter |
adf30af |
+ return it.value();
|
|
Rex Dieter |
adf30af |
}
|
|
Rex Dieter |
adf30af |
}
|
|
Rex Dieter |
adf30af |
</xsl:if>
|
|
Rex Dieter |
adf30af |
--
|
|
Rex Dieter |
adf30af |
2.1.0
|
|
Rex Dieter |
adf30af |
|