aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js143
1 files changed, 0 insertions, 143 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js b/contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js
deleted file mode 100644
index 9d46254..0000000
--- a/contexts/data/lib/closure-library/closure/goog/debug/gcdiagnostics.js
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2007 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Definition of the GcDiagnostics class.
- *
- */
-
-goog.provide('goog.debug.GcDiagnostics');
-
-goog.require('goog.debug.Logger');
-goog.require('goog.debug.Trace');
-goog.require('goog.userAgent');
-
-
-
-/**
- * Class used for singleton goog.debug.GcDiagnostics. Used to hook into
- * the L2 ActiveX controller to profile garbage collection information in IE.
- * Can be used in combination with tracers (goog.debug.Trace), to provide object
- * allocation counts from within the tracers or used alone by invoking start and
- * stop.
- *
- * See http://go/l2binary for the install.
- * TODO(user): Move the L2 installer somewhere more general.
- * @constructor
- * @private
- */
-goog.debug.GcDiagnostics_ = function() {};
-
-
-/**
- * Install the GcDiagnostics tool.
- */
-goog.debug.GcDiagnostics_.prototype.install = function() {
- if (goog.userAgent.IE) {
- /** @preserveTry */
- try {
- var l2Helper = new ActiveXObject('L2.NativeHelper');
-
- // If using tracers, use the higher precision timer provided by L2.
- if (goog.debug.Trace_) {
- goog.debug.Trace_.now = function() {
- return l2Helper['getMilliSeconds']();
- };
- }
-
- if (l2Helper['gcTracer']) {
- l2Helper['gcTracer']['installGcTracing']();
- this.gcTracer_ = l2Helper['gcTracer'];
- if (goog.debug.Trace) {
- // If tracers are in use, register the gcTracer so that per tracer
- // allocations are recorded.
- goog.debug.Trace.setGcTracer(this.gcTracer_);
- }
- }
- this.logger_.info('Installed L2 native helper');
- } catch (e) {
- this.logger_.info('Failed to install L2 native helper: ' + e);
- }
- }
-};
-
-
-/**
- * Logger for the gcDiagnotics
- * @type {goog.debug.Logger}
- * @private
- */
-goog.debug.GcDiagnostics_.prototype.logger_ =
- goog.debug.Logger.getLogger('goog.debug.GcDiagnostics');
-
-
-/**
- * Starts recording garbage collection information. If a trace is already in
- * progress, it is ended.
- */
-goog.debug.GcDiagnostics_.prototype.start = function() {
- if (this.gcTracer_) {
- if (this.gcTracer_['isTracing']()) {
- this.gcTracer_['endGcTracing']();
- }
- this.gcTracer_['startGcTracing']();
- }
-};
-
-
-/**
- * Stops recording garbage collection information. Logs details on the garbage
- * collections that occurred between start and stop. If tracers are in use,
- * adds comments where each GC occurs.
- */
-goog.debug.GcDiagnostics_.prototype.stop = function() {
- if (this.gcTracer_ && this.gcTracer_['isTracing']()) {
- var gcTracer = this.gcTracer_;
- this.gcTracer_['endGcTracing']();
-
- var numGCs = gcTracer['getNumTraces']();
- this.logger_.info('*********GC TRACE*********');
- this.logger_.info('GC ran ' + numGCs + ' times.');
- var totalTime = 0;
- for (var i = 0; i < numGCs; i++) {
- var trace = gcTracer['getTrace'](i);
-
- var msStart = trace['gcStartTime'];
- var msElapsed = trace['gcElapsedTime'];
-
- var msRounded = Math.round(msElapsed * 10) / 10;
- var s = 'GC ' + i + ': ' + msRounded + ' ms, ' +
- 'numVValAlloc=' + trace['numVValAlloc'] + ', ' +
- 'numVarAlloc=' + trace['numVarAlloc'] + ', ' +
- 'numBytesSysAlloc=' + trace['numBytesSysAlloc'];
- if (goog.debug.Trace) {
- goog.debug.Trace.addComment(s, null, msStart);
- }
- this.logger_.info(s);
- totalTime += msElapsed;
- }
- if (goog.debug.Trace) {
- goog.debug.Trace.addComment('Total GC time was ' + totalTime + ' ms.');
- }
- this.logger_.info('Total GC time was ' + totalTime + ' ms.');
- this.logger_.info('*********GC TRACE*********');
- }
-};
-
-
-/**
- * Singleton GcDiagnostics object
- * @type {goog.debug.GcDiagnostics_}
- */
-goog.debug.GcDiagnostics = new goog.debug.GcDiagnostics_();