Mercurial > hg4j
comparison src/org/tmatesoft/hg/internal/Pool.java @ 264:6bb5e7ed051a
Optimize memory usage (reduce number of objects instantiated) when pooling file names and nodeids during manifest parsing
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 19 Aug 2011 03:36:25 +0200 |
parents | 3dcd3dd90c77 |
children | 12f668401613 |
comparison
equal
deleted
inserted
replaced
263:31f67be94e71 | 264:6bb5e7ed051a |
---|---|
16 */ | 16 */ |
17 package org.tmatesoft.hg.internal; | 17 package org.tmatesoft.hg.internal; |
18 | 18 |
19 import java.util.HashMap; | 19 import java.util.HashMap; |
20 | 20 |
21 import org.tmatesoft.hg.util.SparseSet; | |
22 | |
23 /** | 21 /** |
24 * Instance pooling. | 22 * Instance pooling. |
25 * | 23 * |
26 * @author Artem Tikhomirov | 24 * @author Artem Tikhomirov |
27 * @author TMate Software Ltd. | 25 * @author TMate Software Ltd. |
28 */ | 26 */ |
29 public class Pool<T> { | 27 public class Pool<T> { |
30 private final HashMap<T,T> unify; | 28 private final HashMap<T,T> unify; |
31 // private final SparseSet<T> unify = new SparseSet<T>(); | |
32 | 29 |
33 public Pool() { | 30 public Pool() { |
34 unify = new HashMap<T, T>(); | 31 unify = new HashMap<T, T>(); |
35 } | 32 } |
36 | 33 |
71 @Override | 68 @Override |
72 public String toString() { | 69 public String toString() { |
73 StringBuilder sb = new StringBuilder(); | 70 StringBuilder sb = new StringBuilder(); |
74 sb.append(Pool.class.getSimpleName()); | 71 sb.append(Pool.class.getSimpleName()); |
75 sb.append('<'); | 72 sb.append('<'); |
76 // if (!unify.isEmpty()) { | 73 if (!unify.isEmpty()) { |
77 // sb.append(unify.keySet().iterator().next().getClass().getName()); | 74 sb.append(unify.keySet().iterator().next().getClass().getName()); |
78 // } | 75 } |
79 sb.append('>'); | 76 sb.append('>'); |
80 sb.append(':'); | 77 sb.append(':'); |
81 sb.append(unify.size()); | 78 sb.append(unify.size()); |
82 return sb.toString(); | 79 return sb.toString(); |
83 } | 80 } |