[tor-commits] [metrics-lib/master] Store relay flags more efficiently.
karsten at torproject.org
karsten at torproject.org
Sun Jun 1 09:46:37 UTC 2014
commit a472d7f3425feec9b9bed552b05af33dab20fee1
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Wed May 28 10:11:20 2014 +0200
Store relay flags more efficiently.
Turns out a TreeSet<String> requires more memory than a String[]. We can
put together the TreeSet<String> when we need it.
---
.../descriptor/impl/NetworkStatusEntryImpl.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java b/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
index 19f951e..7bfcb29 100644
--- a/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
+++ b/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
@@ -138,10 +138,7 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry {
private void parseSLine(String line, String[] parts)
throws DescriptorParseException {
this.parsedAtMostOnceKeyword("s");
- this.flags = new TreeSet<String>();
- for (int i = 1; i < parts.length; i++) {
- this.flags.add(parts[i]);
- }
+ this.flags = parts;
}
private void parseVLine(String line, String[] parts)
@@ -267,9 +264,15 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry {
return new ArrayList<String>(this.orAddresses);
}
- private SortedSet<String> flags;
+ private String[] flags;
public SortedSet<String> getFlags() {
- return new TreeSet<String>(this.flags);
+ SortedSet<String> result = new TreeSet<String>();
+ if (this.flags != null) {
+ for (int i = 1; i < this.flags.length; i++) {
+ result.add(this.flags[i]);
+ }
+ }
+ return result;
}
private String version;
More information about the tor-commits
mailing list