Skip to content

Commit 1e08c3c

Browse files
authored
GH-2998 native store and LMDB store memory overflow performance (#4974)
2 parents c58eb52 + d30285a commit 1e08c3c

30 files changed

Lines changed: 1531 additions & 670 deletions

File tree

core/model-api/src/main/java/org/eclipse/rdf4j/model/base/AbstractIRI.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,23 @@ public boolean equals(Object o) {
4545
return false;
4646
}
4747

48+
private int cachedHashCode = 0;
49+
4850
@Override
4951
public int hashCode() {
50-
return stringValue().hashCode();
52+
int cached = cachedHashCode;
53+
if (cached == 0) {
54+
synchronized (this) {
55+
cached = cachedHashCode;
56+
if (cached == 0) {
57+
cached = stringValue().hashCode();
58+
cachedHashCode = cached;
59+
}
60+
}
61+
cached = stringValue().hashCode();
62+
cachedHashCode = cached;
63+
}
64+
return cached;
5165
}
5266

5367
@Override

0 commit comments

Comments
 (0)