Skip to content

Commit

Permalink
temporarily disable memory manager to avoid GC issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
wonlay committed Mar 22, 2012
1 parent 5322e88 commit 676d66e
Showing 1 changed file with 61 additions and 60 deletions.
Expand Up @@ -103,48 +103,49 @@ public double getHitRate() {
*/ */
public T get(int reqsize) public T get(int reqsize)
{ {
long t0 = System.currentTimeMillis(); return _initializer.newInstance(reqsize);
int size = reqsize; //long t0 = System.currentTimeMillis();
for(int i = 0; i<sizetable.length; i++) //int size = reqsize;
{ //for(int i = 0; i<sizetable.length; i++)
if (sizetable[i] >= reqsize) //{
{ //if (sizetable[i] >= reqsize)
size = sizetable[i]; //{
break; //size = sizetable[i];
} //break;
} //}
ConcurrentLinkedQueue<WeakReference<T>> queue = _sizeMap.get(size); //}
if (queue==null) //ConcurrentLinkedQueue<WeakReference<T>> queue = _sizeMap.get(size);
{ //if (queue==null)
queue = new ConcurrentLinkedQueue<WeakReference<T>>(); //{
_sizeMap.putIfAbsent(size, queue); //queue = new ConcurrentLinkedQueue<WeakReference<T>>();
queue = _sizeMap.get(size); //_sizeMap.putIfAbsent(size, queue);
} //queue = _sizeMap.get(size);
while(true) //}
{ //while(true)
WeakReference<T> ref = (WeakReference<T>) queue.poll(); //{
if(ref != null) //WeakReference<T> ref = (WeakReference<T>) queue.poll();
{ //if(ref != null)
T buf = ref.get(); //{
if(buf != null) //T buf = ref.get();
{ //if(buf != null)
_hits.incrementAndGet(); //{
return buf; //_hits.incrementAndGet();
} //return buf;
} //}
else //}
{ //else
T ret = _initializer.newInstance(size); //{
_miss.incrementAndGet(); //T ret = _initializer.newInstance(size);
long hit = _hits.get(); //_miss.incrementAndGet();
if (hit > Long.MAX_VALUE/2) //long hit = _hits.get();
{ //if (hit > Long.MAX_VALUE/2)
_hits.set(0); //{
_miss.set(0); //_hits.set(0);
} //_miss.set(0);
return ret; //}
} //return ret;
} //}
//}
} }


/** /**
Expand All @@ -153,24 +154,24 @@ public T get(int reqsize)
*/ */
public void release(T buf) public void release(T buf)
{ {
if (_releaseQueueSize.get()>8000) //if (_releaseQueueSize.get()>8000)
{ //{
log.info("release queue full"); //log.info("release queue full");
synchronized(MemoryManager.this) //synchronized(MemoryManager.this)
{ //{
MemoryManager.this.notifyAll(); //MemoryManager.this.notifyAll();
} //}
return; //return;
} //}
if(buf != null) //if(buf != null)
{ //{
_releaseQueue.offer(buf); //_releaseQueue.offer(buf);
_releaseQueueSize.incrementAndGet(); //_releaseQueueSize.incrementAndGet();
synchronized(MemoryManager.this) //synchronized(MemoryManager.this)
{ //{
MemoryManager.this.notifyAll(); //MemoryManager.this.notifyAll();
} //}
} //}
} }


public static interface Initializer<E> public static interface Initializer<E>
Expand Down

0 comments on commit 676d66e

Please sign in to comment.