TCMemoryManagerJdk15Basic.java :  » Net » Terracotta » com » tc » runtime » Java Open Source

Java Open Source » Net » Terracotta 
Terracotta » com » tc » runtime » TCMemoryManagerJdk15Basic.java
/*
 * All content copyright (c) 2003-2007 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice.  All rights reserved.
 */
package com.tc.runtime;

import com.tc.logging.TCLogger;
import com.tc.logging.TCLogging;

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;

class TCMemoryManagerJdk15Basic implements JVMMemoryManager {

  private static final TCLogger        logger           = TCLogging.getLogger(TCMemoryManagerJdk15Basic.class);

  private final MemoryMXBean           memoryBean;

  public TCMemoryManagerJdk15Basic() {
    memoryBean = ManagementFactory.getMemoryMXBean();
    java.lang.management.MemoryUsage heapUsage = memoryBean.getHeapMemoryUsage();
    if (heapUsage.getMax() <= 0) {
      logger.warn("Please specify Max memory using -Xmx flag for Memory manager to work properly");
    }
  }
  
  public boolean isMemoryPoolMonitoringSupported() {
    return false;
  }

  public MemoryUsage getMemoryUsage() {
    java.lang.management.MemoryUsage heapUsage = memoryBean.getHeapMemoryUsage();
    // TODO:: Supporting collectionCount in future. Get a cumulative collectionCount from every collector
    return new Jdk15MemoryUsage(heapUsage, "VM 1.5 Heap Usage");
  }

  public MemoryUsage getOldGenUsage() {
    throw new UnsupportedOperationException();
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.