List of usage examples for java.lang Runtime totalMemory
public native long totalMemory();
From source file:spade.reporter.Audit.java
private void printStats(boolean forcePrint) { if (reportingEnabled || forcePrint) { long currentTime = System.currentTimeMillis(); if (((currentTime - lastReportedTime) >= reportEveryMs) || forcePrint) { Runtime runtime = Runtime.getRuntime(); long usedMemoryMB = (runtime.totalMemory() - runtime.freeMemory()) / (1024 * 1024); int internalBufferSize = getBuffer().size(); String statString = String.format("Internal buffer size: %d, JVM memory in use: %dMB", internalBufferSize, usedMemoryMB); if (REFINE_NET) { String netfilterStat = String.format( "Unmatched: " + "%d netfilter-syscall, " + "%d syscall-netfilter. " + "Matched: " + "%d netfilter-syscall, " + "%d syscall-netfilter.", networkAnnotationsFromNetfilter.size(), networkAnnotationsFromSyscalls.size(), matchedNetfilterSyscall, matchedSyscallNetfilter); statString += ", " + netfilterStat; }//from ww w . j a v a 2s . c o m logger.log(Level.INFO, statString); lastReportedTime = currentTime; } } }
From source file:org.apache.accumulo.server.tabletserver.ScanRunState.java
private synchronized static void logGCInfo(AccumuloConfiguration conf) { List<GarbageCollectorMXBean> gcmBeans = ManagementFactory.getGarbageCollectorMXBeans(); Runtime rt = Runtime.getRuntime(); StringBuilder sb = new StringBuilder("gc"); boolean sawChange = false; long maxIncreaseInCollectionTime = 0; for (GarbageCollectorMXBean gcBean : gcmBeans) { Long prevTime = prevGcTime.get(gcBean.getName()); long pt = 0; if (prevTime != null) { pt = prevTime;//from ww w. j a v a 2s . com } long time = gcBean.getCollectionTime(); if (time - pt != 0) { sawChange = true; } long increaseInCollectionTime = time - pt; sb.append(String.format(" %s=%,.2f(+%,.2f) secs", gcBean.getName(), time / 1000.0, increaseInCollectionTime / 1000.0)); maxIncreaseInCollectionTime = Math.max(increaseInCollectionTime, maxIncreaseInCollectionTime); prevGcTime.put(gcBean.getName(), time); } long mem = rt.freeMemory(); if (maxIncreaseInCollectionTime == 0) { gcTimeIncreasedCount = 0; } else { gcTimeIncreasedCount++; if (gcTimeIncreasedCount > 3 && mem < rt.maxMemory() * 0.05) { log.warn("Running low on memory"); gcTimeIncreasedCount = 0; } } if (mem > lastMemorySize) { sawChange = true; } String sign = "+"; if (mem - lastMemorySize <= 0) { sign = ""; } sb.append(String.format(" freemem=%,d(%s%,d) totalmem=%,d", mem, sign, (mem - lastMemorySize), rt.totalMemory())); if (sawChange) { log.debug(sb.toString()); } final long keepAliveTimeout = conf.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT); if (maxIncreaseInCollectionTime > keepAliveTimeout) { Halt.halt("Garbage collection may be interfering with lock keep-alive. Halting.", -1); } lastMemorySize = mem; }
From source file:us.daveread.basicquery.BasicQuery.java
/** * Reports statistics on various data such as the date a query was executed * and// w w w . j a va 2s . c o m * 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. j av a 2 s .co m 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; }