Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: dart/compiler/java/com/google/dart/compiler/metrics/JvmMetrics.java

Issue 20722006: Removed compiler/ directory from repository (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/compiler/java/com/google/dart/compiler/metrics/JvmMetrics.java
diff --git a/dart/compiler/java/com/google/dart/compiler/metrics/JvmMetrics.java b/dart/compiler/java/com/google/dart/compiler/metrics/JvmMetrics.java
deleted file mode 100644
index 5123ed66cd88a4915b9853ce5c7e034cd4c8e755..0000000000000000000000000000000000000000
--- a/dart/compiler/java/com/google/dart/compiler/metrics/JvmMetrics.java
+++ /dev/null
@@ -1,249 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.google.dart.compiler.metrics;
-
-import java.io.PrintStream;
-import java.lang.management.CompilationMXBean;
-import java.lang.management.GarbageCollectorMXBean;
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryMXBean;
-import java.lang.management.MemoryPoolMXBean;
-import java.lang.management.MemoryUsage;
-import java.util.List;
-import java.util.StringTokenizer;
-
-/**
- * A class to report jvm/jmx statistics
- */
-public class JvmMetrics {
-
- private static int TABULAR_COLON_POS = 40;
- private static long ONE_KILO_BYTE = 1L << 10L;
- private static long ONE_MEGA_BYTE = 1L << 20L;
- private static long ONE_GIGA_BYTE = 1L << 30L;
-
- public static void maybeWriteJvmMetrics(PrintStream out, String options) {
- if (options == null) {
- return;
- }
-
- boolean verboseMode = false;
- boolean prettyMode = false;
- StringTokenizer st = new StringTokenizer(options,":");
- // options are grouped in order 'detail:format:types'
- if (st.hasMoreTokens()) {
- String mode = st.nextToken();
- if (mode.equalsIgnoreCase("verbose")) {
- verboseMode = true;
- }
- }
-
- if (st.hasMoreTokens()) {
- String mode = st.nextToken();
- if (mode.equalsIgnoreCase("pretty")) {
- prettyMode = true;
- }
- }
-
- if (st.hasMoreTokens()) {
- while (st.hasMoreTokens()) {
- String types = st.nextToken();
- StringTokenizer typeSt = new StringTokenizer(types,",");
- while (typeSt.hasMoreElements()) {
- String type = typeSt.nextToken();
- writeMetrics(out, type, verboseMode, prettyMode);
- }
- }
- } else {
- // the default
- writeMetrics(out, "all", verboseMode, prettyMode);
- }
- }
-
- private static void writeMetrics(PrintStream out, String type, boolean verbose, boolean pretty) {
-
- if (type.equals("gc") || type.equalsIgnoreCase("all")) {
- writeGarbageCollectionStats(out, verbose, pretty);
- }
- if (type.equals("mem") || type.equalsIgnoreCase("all")) {
- writeMemoryMetrics(out, verbose, pretty);
- }
- if (type.equals("jit") || type.equalsIgnoreCase("all")) {
- writeJitMetrics(out, verbose, pretty);
- }
- }
-
- private static void writeJitMetrics(PrintStream out, boolean verbose, boolean pretty) {
-
- CompilationMXBean cBean = ManagementFactory.getCompilationMXBean();
-
- String name;
- if (verbose) {
- name = cBean.getName();
- } else {
- name = "total";
- }
-
- if (pretty) {
- out.println("\nJIT Stats");
- out.println(String.format("\t%s jit time: %d ms", name, cBean.getTotalCompilationTime()));
- } else {
- out.println(normalizeTabularColonPos(String.format("%s-jit-time-ms : %d", normalizeName(name),
- cBean.getTotalCompilationTime())));
- }
- }
-
- private static void writeOverallMemoryUsage(PrintStream out, MemoryUsage usage,
- String prefix, boolean pretty) {
- if (pretty) {
- out.format("\t%s\n", prefix);
- out.format("\t\tavailable : %s\n", formatBytes(usage.getMax()));
- out.format("\t\tcurrent : %s\n", formatBytes(usage.getUsed()));
- } else {
- prefix = normalizeName(prefix);
- out.println(normalizeTabularColonPos(String.format(prefix + "-available-bytes : %d",
- usage.getMax())));
- out.println(normalizeTabularColonPos(String.format(prefix + "-current-bytes : %d",
- usage.getUsed())));
- }
- }
-
- private static void writePoolMemoryUsage(PrintStream out, MemoryUsage usage,
- MemoryUsage peakUsage, String prefix, boolean pretty) {
- if (pretty) {
- out.format("\t\tavailable : %s\n", formatBytes(usage.getMax()));
- out.format("\t\tpeak : %s\n", formatBytes(peakUsage.getUsed()));
- out.format("\t\tcurrent : %s\n", formatBytes(usage.getUsed()));
- } else {
- out.println(normalizeTabularColonPos(String.format(prefix + "-available-bytes : %d",
- usage.getMax())));
- out.println(normalizeTabularColonPos(String.format(prefix + "-peak-bytes : %d",
- peakUsage.getUsed())));
- out.println(normalizeTabularColonPos(String.format(prefix + "-current-bytes : %d",
- usage.getUsed())));
- }
- }
-
- private static void writeMemoryMetrics(PrintStream out, boolean verbose, boolean pretty) {
- if (pretty) {
- out.println("\nMemory usage");
- }
-
- // only show overall stats in verbose mode
- if (verbose) {
- MemoryMXBean overallMemBean = ManagementFactory.getMemoryMXBean();
- MemoryUsage usage = overallMemBean.getHeapMemoryUsage();
- writeOverallMemoryUsage(out, usage, "Heap", pretty);
-
- usage = overallMemBean.getNonHeapMemoryUsage();
- writeOverallMemoryUsage(out, usage, "Non-heap", pretty);
- }
-
- if (verbose) {
- List<MemoryPoolMXBean> mpBeans = ManagementFactory.getMemoryPoolMXBeans();
- for (MemoryPoolMXBean mpBean : mpBeans) {
- MemoryUsage currentUsage = mpBean.getUsage();
- MemoryUsage peakUsage = mpBean.getPeakUsage();
- if (pretty) {
- out.println("\tPool " + mpBean.getName());
- writePoolMemoryUsage(out, currentUsage, peakUsage, null, true);
- } else {
- writePoolMemoryUsage(out, currentUsage, peakUsage,
- "mem-pool-" + normalizeName(mpBean.getName()), false);
- }
- }
- } else {
- long available = 0;
- long current = 0;
- long peak = 0;
- List<MemoryPoolMXBean> mpBeans = ManagementFactory.getMemoryPoolMXBeans();
- for (MemoryPoolMXBean mpBean : mpBeans) {
- MemoryUsage currentUsage = mpBean.getUsage();
- available += currentUsage.getMax();
- current += currentUsage.getUsed();
- MemoryUsage peakUsage = mpBean.getPeakUsage();
- peak += peakUsage.getUsed();
- }
- MemoryUsage summaryUsage = new MemoryUsage(0, current, current, available);
- MemoryUsage summaryPeakUsage = new MemoryUsage(0, peak, peak, peak);
- if (pretty) {
- out.format("\tAggregate of %d memory pools\n", mpBeans.size());
- writePoolMemoryUsage(out, summaryUsage, summaryPeakUsage, null, true);
- } else {
- writePoolMemoryUsage(out, summaryUsage, summaryPeakUsage,
- "mem", false);
- }
- }
- }
-
- private static void writeGarbageCollectionStats(PrintStream out, boolean verbose, boolean pretty) {
- List<GarbageCollectorMXBean> gcBeans = ManagementFactory.getGarbageCollectorMXBeans();
-
- if (verbose) {
- if (pretty) {
- out.println("\nGarbage collection stats");
- for (GarbageCollectorMXBean gcBean : gcBeans) {
- out.println("\tCollector " + gcBean.getName());
- out.format("\t\tcollection count : %d\n", gcBean.getCollectionCount());
- out.format("\t\tcollection time : %d ms\n", gcBean.getCollectionTime());
- }
- } else {
- for (GarbageCollectorMXBean gcBean : gcBeans) {
- String name = normalizeName(gcBean.getName());
- out.println(normalizeTabularColonPos(String.format("gc-" + name + "-collection-count : %d",
- gcBean.getCollectionCount())));
- out.println(normalizeTabularColonPos(String.format("gc-" + name + "-collection-time-ms : %d",
- gcBean.getCollectionTime())));
- }
- }
- } else {
- long collectionCount = 0;
- long collectionTime = 0;
- int collectorCount = gcBeans.size();
- for (GarbageCollectorMXBean gcBean : gcBeans) {
- collectionCount += gcBean.getCollectionCount();
- collectionTime += gcBean.getCollectionTime();
- }
- if (pretty) {
- out.println("\nGarbage collection stats");
- out.format("\tAggregate of %d collectors\n", collectorCount);
- out.format("\t\tcollection count : %d\n", collectionCount);
- out.format("\t\tcollection time : %d ms\n", collectionTime);
- } else {
- String name = normalizeName("aggregate");
- out.println(normalizeTabularColonPos(String.format("gc-" + name + "-collection-count : %d",
- collectionCount)));
- out.println(normalizeTabularColonPos(String.format("gc-" + name + "-collection-time-ms : %d",
- collectionTime)));
- }
- }
- }
-
- private static String normalizeName(String name) {
- return name.replace(" ","_").toLowerCase();
- }
-
- private static String normalizeTabularColonPos(String string) {
- StringBuilder sb = new StringBuilder(string);
- int index = sb.indexOf(":");
- for (;index < TABULAR_COLON_POS;++index) {
- sb.insert(index, ' ');
- }
- return sb.toString();
- }
-
- private static String formatBytes(long numBytes) {
- if (numBytes < ONE_KILO_BYTE) {
- return String.format("%d B", numBytes);
- } else if (numBytes < ONE_MEGA_BYTE) {
- return String.format("%d KB", numBytes / ONE_KILO_BYTE);
- } else if (numBytes < ONE_GIGA_BYTE) {
- return String.format("%d MB", numBytes / ONE_MEGA_BYTE);
- } else {
- return String.format("%d GB", numBytes / ONE_GIGA_BYTE);
- }
- }
-
-}

Powered by Google App Engine
This is Rietveld 408576698