Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 Storybook: Scene-based software for novelists and authors.
 Copyright (C) 2008 - 2012 Martin Mustun
    
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
    
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
    
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    public static void printMemoryUsage() {
        System.out.println(getMemoryUsageHr());
    }

    public static String getMemoryUsageHr() {
        return "Memory Usage (used/free/total/max): " + getHumanReadableByteCount(getMemoryUsed()) + " / "
                + getHumanReadableByteCount(getMemoryFree()) + " / " + getHumanReadableByteCount(getMemoryTotal())
                + " / " + getHumanReadableByteCount(getMemoryMax());
    }

    public static String getHumanReadableByteCount(long bytes) {
        return getHumanReadableByteCount(bytes, true);
    }

    public static String getHumanReadableByteCount(long bytes, boolean si) {
        int unit = si ? 1000 : 1024;
        if (bytes < unit)
            return bytes + " B";
        int exp = (int) (Math.log(bytes) / Math.log(unit));
        String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");
        return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
    }

    public static long getMemoryUsed() {
        return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    }

    public static long getMemoryFree() {
        return Runtime.getRuntime().freeMemory();
    }

    public static long getMemoryTotal() {
        return Runtime.getRuntime().totalMemory();
    }

    public static long getMemoryMax() {
        return Runtime.getRuntime().maxMemory();
    }
}