Example usage for java.lang Runtime freeMemory

List of usage examples for java.lang Runtime freeMemory

Introduction

In this page you can find the example usage for java.lang Runtime freeMemory.

Prototype

public native long freeMemory();

Source Link

Document

Returns the amount of free memory in the Java Virtual Machine.

Usage

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Reports statistics on various data such as the date a query was executed
 * and//from  w w  w . j av a  2 s . c  om
 * the date the results were fetched. Other statistics are reported on such as
 * the
 * the date a connection was asked for, and the date it was actually received.
 * The report statistics are written to an external text file
 * represented by DBSTATS_NAME.
 * 
 * @param sqlStatement
 *          The SQL statement
 * @param connAsk
 *          The time when the connection was requested
 * @param connGot
 *          The time when the connection was returned
 * @param stmtGot
 *          The time when the statement was returned
 * @param queryStart
 *          The time when query exeution began
 * @param queryReady
 *          The time when the query finished exeuting
 * @param queryRSFetched
 *          The time when the result set had been completely fetched
 * @param queryRSProcessed
 *          The time when the result set had been completely processed
 * @param rows
 *          The number of rows in the result set
 * @param cols
 *          The number of columns in the result set
 * @param model
 *          The table model for the results
 * @param outParams
 *          The output parameters defined for this SQL statement
 */
private void reportStats(String sqlStatement, java.util.Date connAsk, java.util.Date connGot,
        java.util.Date stmtGot, java.util.Date queryStart, java.util.Date queryReady,
        java.util.Date queryRSFetched, java.util.Date queryRSProcessed, long rows, int cols, TableModel model,
        List<Object> outParams) {
    Runtime runtime;
    String runStats;
    PrintWriter out;
    boolean firstEntry;
    final String valueNotApplicable = "\"" + Resources.getString("proValueNotApplicable") + "\",";

    runStats = "";
    out = null;
    firstEntry = false;

    if (fileLogStats.isSelected()) {
        // Identify whether file exists, if not create and add header row
        try {
            new FileReader(DBSTATS_NAME).close();
        } catch (Exception any) {
            firstEntry = true;
        }

        try {
            out = new PrintWriter(new FileWriter(DBSTATS_NAME, true));
        } catch (Exception any) {
            LOGGER.error("Failed to write the statistics file [" + DBSTATS_NAME + "]", any);
            messageOut(Resources.getString("errFailWriteStatsFile", DBSTATS_NAME, any.getMessage()), STYLE_RED);
        }
    }

    // Make sure it is always safe to write to "out" -- simplifies logic
    if (out == null) {
        out = new PrintWriter(new StringWriter());
    }

    // Header, if needed
    if (firstEntry) {
        out.print(Resources.getString("proQueryStatsExportHeader"));
        if (outParams != null && outParams.size() > 0) {
            for (int param = 0; param < outParams.size(); ++param) {
                out.print(Resources.getString("proQueryStatsExportHeaderParam", param + ""));
            }
        }
        out.println();
    }

    // Output Query Index Number
    out.print(querySelection.getSelectedIndex() + ",");

    // Output SQL, replacing quotes with apostrophes
    out.print("\"" + sqlStatement.replace('"', '\'') + "\",");

    // Output timestamp
    out.print(Utility.formattedDate(new java.util.Date()) + ",");

    // Output time required to get connection to database
    if (connAsk != null && connGot != null) {
        runStats += Resources.getString("proTimeConnOpen", (connGot.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((connGot.getTime() - connAsk.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time required to get statement object
    if (connGot != null && stmtGot != null) {
        runStats += Resources.getString("proTimeStmtAccess", (stmtGot.getTime() - connGot.getTime()) + "");
        runStats += "  ";
        out.print((stmtGot.getTime() - connGot.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Time it took to configure statement
    if (queryStart != null && stmtGot != null) {
        runStats += Resources.getString("proTimeStmtSetup", (queryStart.getTime() - stmtGot.getTime()) + "");
        runStats += "  ";
        out.print((queryStart.getTime() - stmtGot.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    runStats += "\n          ";

    // Output time DB took to execute query
    if (queryStart != null && queryReady != null) {
        runStats += Resources.getString("proTimeDBExecute", (queryReady.getTime() - queryStart.getTime()) + "");
        runStats += "  ";
        out.print((queryReady.getTime() - queryStart.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time it took to fetch all results
    if (queryReady != null && queryRSFetched != null) {
        runStats += Resources.getString("proTimeResultsFetch",
                (queryRSFetched.getTime() - queryReady.getTime()) + "");
        runStats += "  ";
        out.print((queryRSFetched.getTime() - queryReady.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time it took to process all results
    if (queryReady != null && queryRSProcessed != null) {
        runStats += Resources.getString("proTimeResultSet",
                (queryRSProcessed.getTime() - queryReady.getTime()) + "");
        runStats += "  ";
        out.print((queryRSProcessed.getTime() - queryReady.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    if (runStats.length() > 0) {
        messageOut(Resources.getString("proTimeDBStats") + " ", STYLE_SUBTLE, false);
        messageOut(runStats, STYLE_NORMAL, false);
        runStats = "";
    }

    // Output total time it took to obtain connection, execute SQL and obtain
    // results
    if (connAsk != null && queryRSFetched != null) {
        runStats += Resources.getString("proTimeTotal", (queryRSFetched.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryRSFetched.getTime() - connAsk.getTime()) + ",");
    } else if (connAsk != null && queryRSProcessed != null) {
        runStats += Resources.getString("proTimeTotal", (queryRSProcessed.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryRSProcessed.getTime() - connAsk.getTime()) + ",");
    } else if (connAsk != null && queryReady != null) {
        runStats += Resources.getString("proTimeTotal", (queryReady.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryReady.getTime() - connAsk.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    messageOut(runStats, STYLE_BOLD, true);

    // Output number of columns in resultset
    out.print(cols + ",");

    // Output number of rows returned or modified
    out.print(rows + "," + maxRows.getSelectedItem().toString() + ",");

    runtime = Runtime.getRuntime();

    // Output environment information
    out.print(runtime.totalMemory() + "," + runtime.freeMemory() + ","
            + (runtime.totalMemory() - runtime.freeMemory()) + "," + runtime.maxMemory() + ","
            + runtime.availableProcessors());

    if (configDisplayClientInfo.isSelected()) {
        runStats = Resources.getString("proMemAlloc", runtime.totalMemory() + "");
        runStats += " " + Resources.getString("proMemFree", runtime.freeMemory() + "");
        runStats += " "
                + Resources.getString("proMemUsed", (runtime.totalMemory() - runtime.freeMemory()) + "");
        runStats += " " + Resources.getString("proMemMax", runtime.maxMemory() + "");
        runStats += " " + Resources.getString("proProcessors", runtime.availableProcessors() + "");

        messageOut(Resources.getString("proClientEnv") + " ", STYLE_SUBTLE, false);
        messageOut(runStats);
    }

    if (poolConnect.isSelected()) {
        messageOut(Resources.getString("msgPoolStats") + " ", STYLE_SUBTLE, false);
        messageOut(Resources.getString("msgPoolStatsCount", getDBPool().getNumActive() + "",
                getDBPool().getNumIdle() + ""));
    }

    // If output parameters, list them
    if (outParams != null && outParams.size() > 0) {
        for (int param = 0; param < outParams.size(); ++param) {
            out.print(",");
            if (outParams.get(param) instanceof String) {
                out.print("\"");
            }
            out.print(outParams.get(param));
            if (outParams.get(param) instanceof String) {
                out.print("\"");
            }
        }
    }

    // If model given, output describe content
    if (model != null) {
        for (int row = 1; row < model.getRowCount(); ++row) {
            out.print(",\"");

            // Column Name
            out.print(model.getValueAt(row, 0));

            // Type
            out.print(" " + model.getValueAt(row, 1));

            // Size
            out.print(" " + model.getValueAt(row, 2));

            // Precision
            out.print(" (" + model.getValueAt(row, 3) + "," + model.getValueAt(row, 4) + ")");

            out.print("\"");
        }
    }

    out.println();
    out.close();
}

From source file:StreamFlusher.java

private long getMemInUse(Runtime runtime) {
    return runtime.totalMemory() - runtime.freeMemory();
}

From source file:StreamFlusher.java

public Object visit(ASTmemory_report_statement node, Object data) {
    Runtime r = Runtime.getRuntime();
    long max = r.maxMemory();
    long total = r.totalMemory();
    long free = r.freeMemory();
    long inuse = total - free;

    if (((InterpData) data).getInGUI() == true) {
        PseudoTerminalInternalFrame terminal = ((InterpData) data).getGUI().getTerminal();

        terminal.appendToHistory("// " + max + " max memory that Java will try to use");
        terminal.appendToHistory("// " + total + " total memory");
        terminal.appendToHistory("// " + free + " free");
        terminal.appendToHistory("// " + inuse + " in use (total - free)");
    } else {//  w w w.jav  a 2 s.  c  om
        System.out.println("// " + max + " max memory that Java will try to use");
        System.out.println("// " + total + " total memory");
        System.out.println("// " + free + " free memory");
        System.out.println("// " + inuse + " memory in use (total - free)");
    }
    return data;
}