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

Unified Diff: dart/compiler/java/com/google/dart/compiler/metrics/CompilerMetrics.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/CompilerMetrics.java
diff --git a/dart/compiler/java/com/google/dart/compiler/metrics/CompilerMetrics.java b/dart/compiler/java/com/google/dart/compiler/metrics/CompilerMetrics.java
deleted file mode 100644
index 3f7d9380f6c6b32e2538b37364d13ddfb0d086ee..0000000000000000000000000000000000000000
--- a/dart/compiler/java/com/google/dart/compiler/metrics/CompilerMetrics.java
+++ /dev/null
@@ -1,197 +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.ManagementFactory;
-import java.lang.management.ThreadMXBean;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Collection of compiler metrics.
- */
-public final class CompilerMetrics {
- // TODO: Consider refactoring this class so each subsystem has it own metrics class.
-
- public static long getCPUTime() {
- return System.currentTimeMillis() * 1000000;
- }
- /**
- * Returns the current thread's CPU time or -1 if this is not supported.
- */
- public static long getThreadTime() {
- ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
- if (threadMXBean.isThreadCpuTimeSupported()) {
- return threadMXBean.getCurrentThreadCpuTime();
- }
-
- return -1;
- }
-
- private static double nanoToMillis(long nanoTime) {
- return nanoTime / 1000000.0d;
- }
- private AtomicLong charactersParsed = new AtomicLong();
- private AtomicLong charactersParsedExcludingComments = new AtomicLong();
- private long compileLibrariesTime = 0L;
- private long compileLibrariesTimeStart = 0L;
- private AtomicLong linesParsed = new AtomicLong();
- private AtomicLong linesParsedExcludingComments = new AtomicLong();
-
- private long milliEndTime = -1;
- private final long milliStartTime;
-
- private long nanoParseWallTime = 0;
- private AtomicLong nanoTotalParseTime = new AtomicLong();
- private long nativeLibCharCount;
-
- // Parser metrics
- private AtomicLong unitsParsed = new AtomicLong();
-
- private long updateAndResolveTime = 0L;
-
- // Timing metrics for complete stages
- private long updateAndResolveTimeStart = 0L;
-
- public CompilerMetrics() {
- this.milliStartTime = System.currentTimeMillis();
- }
-
- /**
- * Accumulate more parsing time. TODO: Once the parser gets cleaned up we should be able to
- * integrate this with unit parsed.
- */
- public void addParseTimeNano(long nanoTotalParseTime) {
- this.nanoTotalParseTime.addAndGet(nanoTotalParseTime);
- }
-
- public void addParseWallTimeNano( long nanoWallParseTime) {
- this.nanoParseWallTime = nanoWallParseTime;
- }
-
- public void done() {
- if (milliEndTime == -1) {
- milliEndTime = System.currentTimeMillis();
- }
- }
-
- public void endCompileLibrariesTime() {
- compileLibrariesTime = System.currentTimeMillis() - compileLibrariesTimeStart;
- }
-
- public void endUpdateAndResolveTime() {
- updateAndResolveTime = System.currentTimeMillis() - updateAndResolveTimeStart;
- }
-
- public long getCompileLibrariesTime() {
- return compileLibrariesTime;
- }
-
- public long getJSNativeLibCharSize() {
- return nativeLibCharCount;
- }
-
- public double getLinesPerMS() {
- return getNumLinesParsed() / getTotalCompilationTime();
- }
-
- public double getNonCommentLinesPerMS() {
- return getNumNonCommentLines() / getTotalCompilationTime();
- }
-
- public long getNumCharsParsed() {
- return charactersParsed.get();
- }
-
- public long getNumLinesParsed() {
- return linesParsed.get();
- }
-
- public long getNumNonCommentChars() {
- return charactersParsedExcludingComments.get();
- }
-
- public long getNumNonCommentLines() {
- return linesParsedExcludingComments.get();
- }
-
- public double getNumUnitsParsed() {
- return unitsParsed.get();
- }
-
- public double getParseTime() {
- return nanoToMillis(nanoTotalParseTime.get());
- }
-
- public double getParseWallTime() {
- return nanoToMillis(nanoParseWallTime);
- }
-
- public double getPercentCharsConsumedByNativeLibraries() {
- return (getJSNativeLibCharSize() / getNumCharsParsed()) * 100d;
- }
-
- public double getPercentTimeParsing() {
- return getParseTime() / getTotalCompilationTime();
- }
-
- public double getTimeSpentPerUnit() {
- if (getNumUnitsParsed() == 0) {
- return 0;
- }
- return getTotalCompilationTime() / getNumUnitsParsed();
- }
-
- public double getTotalCompilationTime() {
- return milliEndTime - milliStartTime;
- }
-
- public long getUpdateAndResolveTime() {
- return updateAndResolveTime;
- }
-
- public void startCompileLibrariesTime() {
- compileLibrariesTimeStart = System.currentTimeMillis();
- }
-
- public void startUpdateAndResolveTime() {
- updateAndResolveTimeStart = System.currentTimeMillis();
- }
-
- public void unitParsed(int charactersParsed, int charactersParsedExcludingComments,
- int linesParsed, int linesParsedExcludingComments) {
- this.unitsParsed.incrementAndGet();
- this.charactersParsed.addAndGet(charactersParsed);
- this.charactersParsedExcludingComments.addAndGet(charactersParsedExcludingComments);
- this.linesParsed.addAndGet(linesParsed);
- this.linesParsedExcludingComments.addAndGet(linesParsedExcludingComments);
- }
-
- /**
- * Writes the metrics to the {@link PrintStream}.
- */
- public void write(PrintStream out) {
- /* This is mainly for the metrics system. Units should be encoded in
- * the label name and end up as the benchmark names.
- */
- done();
- out.format("Compile-time-total-ms : %1$.2f%n", getTotalCompilationTime());
- out.format("# Update-and-resolve-time-ms : %d\n", getUpdateAndResolveTime());
- out.format("# Compile-libraries-time-ms : %d\n", getCompileLibrariesTime());
- out.println("# Compile-time-unit-average-ms : " + getTimeSpentPerUnit());
- out.format("# Parse-wall-time-ms : %1$.2f%n", getParseWallTime());
- out.format("# Parse-time-ms : %1$.2f%n", getParseTime());
- out.println("# Parsed-units : " + getNumUnitsParsed());
- out.println("# Parsed-src-chars : " + getNumCharsParsed());
- out.println("# Parsed-src-lines : " + getNumLinesParsed());
- out.println("# Parsed-code-chars : " + getNumNonCommentChars());
- out.println("# Parsed-code-lines : " + getNumNonCommentLines());
- double jsNativeLibCharSize = (getJSNativeLibCharSize() == -1) ? 0 : getJSNativeLibCharSize();
- out.println("# Output-js-native-lib-chars : " + jsNativeLibCharSize );
- out.println("# Processed-total-lines-ms : " + getLinesPerMS());
- out.println("# Processed-code-lines-ms : " + getNonCommentLinesPerMS());
- out.println("# Ratio-parsing-compile-percent : " + getPercentTimeParsing() * 100);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698