Java Memory Usage getMemoryInfo()

Here you can find the source of getMemoryInfo()

Description

get Memory Info

License

Apache License

Declaration

public static StringBuffer getMemoryInfo() 

Method Source Code


//package com.java2s;
/*//from   www.  j  av a 2  s  .  c  om
 * Copyright 2007-2010 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

import java.text.DecimalFormat;
import java.text.NumberFormat;

public class Main {
    public static StringBuffer getMemoryInfo() {
        StringBuffer buffer = new StringBuffer();

        freeMemory();

        Runtime runtime = Runtime.getRuntime();
        double usedMemory = usedMemory(runtime);
        double maxMemory = maxMemory(runtime);

        NumberFormat f = new DecimalFormat("###,##0.0");

        String lineSeparator = System.getProperty("line.separator");
        buffer.append("Used memory: " + f.format(usedMemory) + "MB").append(lineSeparator);
        buffer.append("Max available memory: " + f.format(maxMemory) + "MB").append(lineSeparator);
        return buffer;
    }

    public static void freeMemory() {
        System.gc();
        System.runFinalization();
    }

    /**
     * Returns used memory in MB
     */
    public static double usedMemory() {
        Runtime runtime = Runtime.getRuntime();
        return usedMemory(runtime);
    }

    static double usedMemory(Runtime runtime) {
        long totalMemory = runtime.totalMemory();
        long freeMemory = runtime.freeMemory();
        double usedMemory = (double) (totalMemory - freeMemory) / (double) (1024 * 1024);
        return usedMemory;
    }

    /**
     * Returns max memory available MB
     */
    public static double maxMemory() {
        Runtime runtime = Runtime.getRuntime();
        return maxMemory(runtime);
    }

    static double maxMemory(Runtime runtime) {
        long maxMemory = runtime.maxMemory();
        double memory = (double) maxMemory / (double) (1024 * 1024);
        return memory;
    }
}

Related

  1. getMemberName(int number)
  2. getMemInfo()
  3. getMemoryFootprint()
  4. getMemoryInfo()
  5. getMemoryInfo()
  6. getMemorySize(long size)
  7. getMemoryStatus()
  8. getMemoryUsage()
  9. getMemoryUsage()