Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
running md2d.js with d8 tracing

Build v8 (creates the d8 executable):

git clone git://github.com/v8/v8.git v8-git
cd v8-git/
make dependencies
make native

If you don't have a copy of the lab repo download md2d.js from this gist:

curl https://raw.github.com/gist/2289269/md2d.js -o md2d.js

If you do have a local copy of the Lab repo then make a copy of the md-engine/ folder generated by the lab repo and append add-to-md2d.js to the end of md-engine/md2d.js:

cp -R $PATH_TO_LAB/md-engine ../
curl https://raw.github.com/gist/2289269/add-to-md2d.js >> ../md-engine/md2d.js

Run md2d.js without profiling (use correct path to md2d.js):

$ out/native/d8  md2d.js
initializing to temp 100
*** MD warmup: 1000 steps
*** MD benchmark: 5 runs, 1000 steps
*** MD run 1: 2028
*** MD run 2: 2009.9999999999998
*** MD run 3: 1993
*** MD run 4: 2072
*** MD run 5: 2015.0000000000002
*** MD ave: 2023.6

Running with just d8 I get 2024 average model-steps/s (Mac OS X 10.6.8 2.66 GHz Intel Core i7 with 8GB memory).

Benchmarking the same MD engine while running the Complex Atoms model generated by the tag v0.1.1 in Chrome 20.0.1090.0 I am normally seeing benchmark results for just the model of 550-600 model-steps/s.

However when Chrome is running slowly the rate drops to 120-150.

I do not see the slowdown running the latest Complex Atoms model generated by the master branch in Chrome 20.0.1092.0.

Testing on Windows 7 (on the same machine) I have recorded performance as high as 1724 model-steps/s.

Run d8 (v8) with various tracing flags enabled:

out/native/d8 --trace-opt --trace-inlining --trace-deopt --code-comments --trace-gc md2d.js 

Here is a copy of recent profiling results.

For more info on interpreting the results see Florian Loitsch's series on profiling and optimizing code for V8.

You can also run md2d.js in node with or without the profiling arguments:

$ node --trace-deopt --code-comments md2d.js

[deoptimize context: 102010579]
initializing to temp 100
*** MD warmup: 1000 steps
**** DEOPT: require.define.makeIntegrator.integrate at bailout #307, address 0x0, frame size 1232
[deoptimizing: begin 0x1007baf21 require.define.makeIntegrator.integrate @307]
  translating require.define.makeIntegrator.integrate => node=1792, height=224
    0x7fff5fbfdf60: [top + 272] <- 0x1260643b9 ; [esp + 944]
    0x7fff5fbfdf58: [top + 264] <- 0x1002000b1 <undefined> ; literal
    ...

References:

Resources:

exports = {};
if (typeof console === 'undefined') {
console = {} ;
console.log = console.info = console.warn = console.error = print;
}
var model = require('./md2d').model,
nodes,
integrator, state;
model.createNodes();
nodes = model.nodes;
integrator = model.getIntegrator();
state = integrator.getOutputState();
exports.run = function() {
var n = 1000,
runs = 5,
result,
results = [],
ave,
i, j, begin;
// warm up
console.log( "*** MD warmup: " + n + " steps");
for (i = 0; i < n; i++) {
integrator.integrate();
}
console.log( "*** MD benchmark: " + runs + ' runs, ' + n + " steps");
for (j = 1; j <= runs; j++) {
begin = Date.now();
for (i = 0; i < n; i++) {
integrator.integrate();
}
result = +(Date.now() - begin) / n * 1000;
results.push(result);
console.log( "*** MD run " + j + ': '+ result);
}
ave = results.reduce(function(prev, current) { return prev + current }) / runs;
console.log( "*** MD ave: " + ave);
};
exports.run();
var require = function (file, cwd) {
var resolved = require.resolve(file, cwd || '/');
var mod = require.modules[resolved];
if (!mod) throw new Error(
'Failed to resolve module ' + file + ', tried ' + resolved
);
var res = mod._cached ? mod._cached : mod();
return res;
}
require.paths = [];
require.modules = {};
require.extensions = [".js",".coffee"];
require._core = {
'assert': true,
'events': true,
'fs': true,
'path': true,
'vm': true
};
require.resolve = (function () {
return function (x, cwd) {
if (!cwd) cwd = '/';
if (require._core[x]) return x;
var path = require.modules.path();
cwd = path.resolve('/', cwd);
var y = cwd || '/';
if (x.match(/^(?:\.\.?\/|\/)/)) {
var m = loadAsFileSync(path.resolve(y, x))
|| loadAsDirectorySync(path.resolve(y, x));
if (m) return m;
}
var n = loadNodeModulesSync(x, y);
if (n) return n;
throw new Error("Cannot find module '" + x + "'");
function loadAsFileSync (x) {
if (require.modules[x]) {
return x;
}
for (var i = 0; i < require.extensions.length; i++) {
var ext = require.extensions[i];
if (require.modules[x + ext]) return x + ext;
}
}
function loadAsDirectorySync (x) {
x = x.replace(/\/+$/, '');
var pkgfile = x + '/package.json';
if (require.modules[pkgfile]) {
var pkg = require.modules[pkgfile]();
var b = pkg.browserify;
if (typeof b === 'object' && b.main) {
var m = loadAsFileSync(path.resolve(x, b.main));
if (m) return m;
}
else if (typeof b === 'string') {
var m = loadAsFileSync(path.resolve(x, b));
if (m) return m;
}
else if (pkg.main) {
var m = loadAsFileSync(path.resolve(x, pkg.main));
if (m) return m;
}
}
return loadAsFileSync(x + '/index');
}
function loadNodeModulesSync (x, start) {
var dirs = nodeModulesPathsSync(start);
for (var i = 0; i < dirs.length; i++) {
var dir = dirs[i];
var m = loadAsFileSync(dir + '/' + x);
if (m) return m;
var n = loadAsDirectorySync(dir + '/' + x);
if (n) return n;
}
var m = loadAsFileSync(x);
if (m) return m;
}
function nodeModulesPathsSync (start) {
var parts;
if (start === '/') parts = [ '' ];
else parts = path.normalize(start).split('/');
var dirs = [];
for (var i = parts.length - 1; i >= 0; i--) {
if (parts[i] === 'node_modules') continue;
var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
dirs.push(dir);
}
return dirs;
}
};
})();
require.alias = function (from, to) {
var path = require.modules.path();
var res = null;
try {
res = require.resolve(from + '/package.json', '/');
}
catch (err) {
res = require.resolve(from, '/');
}
var basedir = path.dirname(res);
var keys = (Object.keys || function (obj) {
var res = [];
for (var key in obj) res.push(key)
return res;
})(require.modules);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (key.slice(0, basedir.length + 1) === basedir + '/') {
var f = key.slice(basedir.length);
require.modules[to + f] = require.modules[basedir + f];
}
else if (key === basedir) {
require.modules[to] = require.modules[basedir];
}
}
};
require.define = function (filename, fn) {
var dirname = require._core[filename]
? ''
: require.modules.path().dirname(filename)
;
var require_ = function (file) {
return require(file, dirname)
};
require_.resolve = function (name) {
return require.resolve(name, dirname);
};
require_.modules = require.modules;
require_.define = require.define;
var module_ = { exports : {} };
require.modules[filename] = function () {
require.modules[filename]._cached = module_.exports;
fn.call(
module_.exports,
require_,
module_,
module_.exports,
dirname,
filename
);
require.modules[filename]._cached = module_.exports;
return module_.exports;
};
};
if (typeof process === 'undefined') process = {};
if (!process.nextTick) process.nextTick = (function () {
var queue = [];
var canPost = typeof window !== 'undefined'
&& window.postMessage && window.addEventListener
;
if (canPost) {
window.addEventListener('message', function (ev) {
if (ev.source === window && ev.data === 'browserify-tick') {
ev.stopPropagation();
if (queue.length > 0) {
var fn = queue.shift();
fn();
}
}
}, true);
}
return function (fn) {
if (canPost) {
queue.push(fn);
window.postMessage('browserify-tick', '*');
}
else setTimeout(fn, 0);
};
})();
if (!process.title) process.title = 'browser';
if (!process.binding) process.binding = function (name) {
if (name === 'evals') return require('vm')
else throw new Error('No such module')
};
if (!process.cwd) process.cwd = function () { return '.' };
if (!process.env) process.env = {};
if (!process.argv) process.argv = [];
require.define("path", function (require, module, exports, __dirname, __filename) {
function filter (xs, fn) {
var res = [];
for (var i = 0; i < xs.length; i++) {
if (fn(xs[i], i, xs)) res.push(xs[i]);
}
return res;
}
// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = parts.length; i >= 0; i--) {
var last = parts[i];
if (last == '.') {
parts.splice(i, 1);
} else if (last === '..') {
parts.splice(i, 1);
up++;
} else if (up) {
parts.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) {
for (; up--; up) {
parts.unshift('..');
}
}
return parts;
}
// Regex to split a filename into [*, dir, basename, ext]
// posix version
var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/;
// path.resolve([from ...], to)
// posix version
exports.resolve = function() {
var resolvedPath = '',
resolvedAbsolute = false;
for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {
var path = (i >= 0)
? arguments[i]
: process.cwd();
// Skip empty and invalid entries
if (typeof path !== 'string' || !path) {
continue;
}
resolvedPath = path + '/' + resolvedPath;
resolvedAbsolute = path.charAt(0) === '/';
}
// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)
// Normalize the path
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
return !!p;
}), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
};
// path.normalize(path)
// posix version
exports.normalize = function(path) {
var isAbsolute = path.charAt(0) === '/',
trailingSlash = path.slice(-1) === '/';
// Normalize the path
path = normalizeArray(filter(path.split('/'), function(p) {
return !!p;
}), !isAbsolute).join('/');
if (!path && !isAbsolute) {
path = '.';
}
if (path && trailingSlash) {
path += '/';
}
return (isAbsolute ? '/' : '') + path;
};
// posix version
exports.join = function() {
var paths = Array.prototype.slice.call(arguments, 0);
return exports.normalize(filter(paths, function(p, index) {
return p && typeof p === 'string';
}).join('/'));
};
exports.dirname = function(path) {
var dir = splitPathRe.exec(path)[1] || '';
var isWindows = false;
if (!dir) {
// No dirname
return '.';
} else if (dir.length === 1 ||
(isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {
// It is just a slash or a drive letter with a slash
return dir;
} else {
// It is a full dirname, strip trailing slash
return dir.substring(0, dir.length - 1);
}
};
exports.basename = function(path, ext) {
var f = splitPathRe.exec(path)[2] || '';
// TODO: make this comparison case-insensitive on windows?
if (ext && f.substr(-1 * ext.length) === ext) {
f = f.substr(0, f.length - ext.length);
}
return f;
};
exports.extname = function(path) {
return splitPathRe.exec(path)[3] || '';
};
});
require.define("/arrays/arrays.js", function (require, module, exports, __dirname, __filename) {
/*globals window Uint8Array Int8Array Uint16Array Int16Array Uint32Array Int32Array Float32Array Float64Array */
/*jshint newcap: false */
//
// 'requirified' version of Typed Array Utilities.
//
var arrays;
arrays = exports.arrays = {};
arrays.version = '0.0.1';
arrays.webgl = (typeof window !== 'undefined') && !!window.WebGLRenderingContext;
arrays.typed = false;
try {
var a = new Float64Array(0);
arrays.typed = true;
} catch(e) {
}
// regular
// Uint8Array
// Uint16Array
// Uint32Array
// Int8Array
// Int16Array
// Int32Array
// Float32Array
arrays.create = function(size, fill, array_type) {
if (!array_type) {
if (arrays.webgl || arrays.typed) {
array_type = "Float32Array";
} else {
array_type = "regular";
}
}
fill = fill || 0;
var a, i;
if (array_type === "regular") {
a = new Array(size);
} else {
switch(array_type) {
case "Float64Array":
a = new Float64Array(size);
break;
case "Float32Array":
a = new Float32Array(size);
break;
case "Int32Array":
a = new Int32Array(size);
break;
case "Int16Array":
a = new Int16Array(size);
break;
case "Int8Array":
a = new Int8Array(size);
break;
case "Uint32Array":
a = new Uint32Array(size);
break;
case "Uint16Array":
a = new Uint16Array(size);
break;
case "Uint8Array":
a = new Uint8Array(size);
break;
default:
a = new Array(size);
break;
}
}
i=-1; while(++i < size) { a[i] = fill; }
return a;
};
arrays.constructor_function = function(source) {
if (source.buffer && source.buffer.__proto__.constructor) {
return source.__proto__.constructor;
}
if (source.constructor === Array) {
return source.constructor;
}
throw new Error(
"arrays.constructor_function: must be an Array or Typed Array: " +
" source: " + source +
", source.constructor: " + source.constructor +
", source.buffer: " + source.buffer +
", source.buffer.slice: " + source.buffer.slice +
", source.buffer.__proto__: " + source.buffer.__proto__ +
", source.buffer.__proto__.constructor: " + source.buffer.__proto__.constructor
);
};
arrays.copy = function(source, dest) {
var len = source.length,
i = -1;
while(++i < len) { dest[i] = source[i]; }
dest.length = len;
return dest;
};
arrays.clone = function(source) {
var i, len = source.length, clone, constructor;
constructor = arrays.constructor_function(source);
if (constructor === Array) {
clone = new constructor(len);
for (i = 0; i < len; i++) { clone[i] = source[i]; }
return clone;
}
if (source.buffer.slice) {
clone = new constructor(source.buffer.slice(0));
return clone;
}
clone = new constructor(len);
for (i = 0; i < len; i++) { clone[i] = source[i]; }
return clone;
};
/** @return true if x is between a and b. */
// float a, float b, float x
arrays.between = function(a, b, x) {
return x < Math.max(a, b) && x > Math.min(a, b);
};
// float[] array
arrays.max = function(array) {
return Math.max.apply( Math, array );
};
// float[] array
arrays.min = function(array) {
return Math.min.apply( Math, array );
};
// FloatxxArray[] array
arrays.maxTypedArray = function(array) {
var test, i,
max = Number.MIN_VALUE,
length = array.length;
for(i = 0; i < length; i++) {
test = array[i];
max = test > max ? test : max;
}
return max;
};
// FloatxxArray[] array
arrays.minTypedArray = function(array) {
var test, i,
min = Number.MAX_VALUE,
length = array.length;
for(i = 0; i < length; i++) {
test = array[i];
min = test < min ? test : min;
}
return min;
};
// float[] array
arrays.maxAnyArray = function(array) {
try {
return Math.max.apply( Math, array );
}
catch (e) {
if (e instanceof TypeError) {
var test, i,
max = Number.MIN_VALUE,
length = array.length;
for(i = 0; i < length; i++) {
test = array[i];
max = test > max ? test : max;
}
return max;
}
}
};
// float[] array
arrays.minAnyArray = function(array) {
try {
return Math.min.apply( Math, array );
}
catch (e) {
if (e instanceof TypeError) {
var test, i,
min = Number.MAX_VALUE,
length = array.length;
for(i = 0; i < length; i++) {
test = array[i];
min = test < min ? test : min;
}
return min;
}
}
};
arrays.average = function(array) {
var i, acc = 0,
length = array.length;
for (i = 0; i < length; i++) {
acc += array[i];
}
return acc / length;
};
});
require.define("/constants/index.js", function (require, module, exports, __dirname, __filename) {
/*jslint loopfunc: true */
/** A list of physical constants. To access any given constant, require() this module
and call the 'as' method of the desired constant to get the constant in the desired unit.
This module also provides a few helper functions for unit conversion.
Usage:
var constants = require('./constants'),
ATOMIC_MASS_IN_GRAMS = constants.ATOMIC_MASS.as(constants.unit.GRAM),
GRAMS_PER_KILOGRAM = constants.ratio(constants.unit.GRAM, { per: constants.unit.KILOGRAM }),
// this works for illustration purposes, although the preferred method would be to pass
// constants.unit.KILOGRAM to the 'as' method:
ATOMIC_MASS_IN_KILOGRAMS = constants.convert(ATOMIC_MASS_IN_GRAMS, {
from: constants.unit.GRAM,
to: constants.unit.KILOGRAM
});
*/
var units = require('./units'),
unit = units.unit,
ratio = units.ratio,
convert = units.convert,
constants = {
ELEMENTARY_CHARGE: {
value: 1,
unit: unit.ELEMENTARY_CHARGE
},
ATOMIC_MASS: {
value: 1,
unit: unit.DALTON
},
BOLTZMANN_CONSTANT: {
value: 1.380658e-23,
unit: unit.JOULES_PER_KELVIN
},
AVAGADRO_CONSTANT: {
// N_A is numerically equal to Dalton per gram
value: ratio( unit.DALTON, { per: unit.GRAM }),
unit: unit.INVERSE_MOLE
},
PERMITTIVITY_OF_FREE_SPACE: {
value: 8.854187e-12,
unit: unit.FARADS_PER_METER
}
},
constantName, constant;
// Derived units
constants.COULOMB_CONSTANT = {
value: 1 / (4 * Math.PI * constants.PERMITTIVITY_OF_FREE_SPACE.value),
unit: unit.METERS_PER_FARAD
};
// Exports
exports.unit = unit;
exports.ratio = ratio;
exports.convert = convert;
// Require explicitness about units by publishing constants as a set of objects with only an 'as' property,
// which will return the constant in the specified unit.
for (constantName in constants) {
if (constants.hasOwnProperty(constantName)) {
constant = constants[constantName];
exports[constantName] = (function(constant) {
return {
as: function(toUnit) {
return units.convert(constant.value, { from: constant.unit, to: toUnit });
}
};
}(constant));
}
}
});
require.define("/constants/units.js", function (require, module, exports, __dirname, __filename) {
/** Provides a few simple helper functions for converting related unit types.
This sub-module doesn't do unit conversion between compound unit types (e.g., knowing that kg*m/s^2 = J)
only simple scaling between units measuring the same type of quantity.
*/
// Prefer the "per" formulation to the "in" formulation.
//
// If KILOGRAMS_PER_AMU is 1.660540e-27 we know the math is:
// "1 amu * 1.660540e-27 kg/amu = 1.660540e-27 kg"
// (Whereas the "in" forumulation might be slighty more error prone:
// given 1 amu and 6.022e-26 kg in an amu, how do you get kg again?)
// These you might have to look up...
var KILOGRAMS_PER_DALTON = 1.660540e-27,
COULOMBS_PER_ELEMENTARY_CHARGE = 1.602177e-19,
// 1 eV = 1 e * 1 V = (COULOMBS_PER_ELEMENTARY_CHARGE) C * 1 J/C
JOULES_PER_EV = COULOMBS_PER_ELEMENTARY_CHARGE,
// though these are equally important!
SECONDS_PER_FEMTOSECOND = 1e-15,
METERS_PER_NANOMETER = 1e-9,
ANGSTROMS_PER_NANOMETER = 10,
GRAMS_PER_KILOGRAM = 1000,
types = {
TIME: "time",
LENGTH: "length",
MASS: "mass",
ENERGY: "energy",
ENTROPY: "entropy",
CHARGE: "charge",
INVERSE_QUANTITY: "inverse quantity",
FARADS_PER_METER: "farads per meter",
METERS_PER_FARAD: "meters per farad",
FORCE: "force",
VELOCITY: "velocity",
// unused as of yet
AREA: "area",
PRESSURE: "pressure"
},
unit,
ratio,
convert;
/**
In each of these units, the reference type we actually use has value 1, and conversion
ratios for the others are listed.
*/
exports.unit = unit = {
FEMTOSECOND: { name: "femtosecond", value: 1, type: types.TIME },
SECOND: { name: "second", value: SECONDS_PER_FEMTOSECOND, type: types.TIME },
NANOMETER: { name: "nanometer", value: 1, type: types.LENGTH },
ANGSTROM: { name: "Angstrom", value: 1 * ANGSTROMS_PER_NANOMETER, type: types.LENGTH },
METER: { name: "meter", value: 1 * METERS_PER_NANOMETER, type: types.LENGTH },
DALTON: { name: "Dalton", value: 1, type: types.MASS },
GRAM: { name: "gram", value: 1 * KILOGRAMS_PER_DALTON * GRAMS_PER_KILOGRAM, type: types.MASS },
KILOGRAM: { name: "kilogram", value: 1 * KILOGRAMS_PER_DALTON, type: types.MASS },
MW_ENERGY_UNIT: {
name: "MW Energy Unit (Dalton * nm^2 / fs^2)",
value: 1,
type: types.ENERGY
},
JOULE: {
name: "Joule",
value: KILOGRAMS_PER_DALTON *
METERS_PER_NANOMETER * METERS_PER_NANOMETER *
(1/SECONDS_PER_FEMTOSECOND) * (1/SECONDS_PER_FEMTOSECOND),
type: types.ENERGY
},
EV: {
name: "electron volt",
value: KILOGRAMS_PER_DALTON *
METERS_PER_NANOMETER * METERS_PER_NANOMETER *
(1/SECONDS_PER_FEMTOSECOND) * (1/SECONDS_PER_FEMTOSECOND) *
(1/JOULES_PER_EV),
type: types.ENERGY
},
EV_PER_KELVIN: { name: "electron volts per Kelvin", value: 1, type: types.ENTROPY },
JOULES_PER_KELVIN: { name: "Joules per Kelvin", value: 1 * JOULES_PER_EV, type: types.ENTROPY },
ELEMENTARY_CHARGE: { name: "elementary charge", value: 1, type: types.CHARGE },
COULOMB: { name: "Coulomb", value: COULOMBS_PER_ELEMENTARY_CHARGE, type: types.CHARGE },
INVERSE_MOLE: { name: "inverse moles", value: 1, type: types.INVERSE_QUANTITY },
FARADS_PER_METER: { name: "Farads per meter", value: 1, type: types.FARADS_PER_METER },
METERS_PER_FARAD: { name: "meters per Farad", value: 1, type: types.METERS_PER_FARAD },
MW_FORCE_UNIT: {
name: "MW force units (Dalton * nm / fs^2)",
value: 1,
type: types.FORCE
},
NEWTON: {
name: "Newton",
value: 1 * KILOGRAMS_PER_DALTON * METERS_PER_NANOMETER * (1/SECONDS_PER_FEMTOSECOND) * (1/SECONDS_PER_FEMTOSECOND),
type: types.FORCE
},
MW_VELOCITY_UNIT: {
name: "MW velocity units (nm / fs)",
value: 1,
type: types.VELOCITY
},
METERS_PER_SECOND: {
name: "meters per second",
value: 1 * METERS_PER_NANOMETER * (1 / SECONDS_PER_FEMTOSECOND),
type: types.VELOCITY
}
};
/** Provide ratios for conversion of one unit to an equivalent unit type.
Usage: ratio(units.GRAM, { per: units.KILOGRAM }) === 1000
ratio(units.GRAM, { as: units.KILOGRAM }) === 0.001
*/
exports.ratio = ratio = function(from, to) {
var checkCompatibility = function(fromUnit, toUnit) {
if (fromUnit.type !== toUnit.type) {
throw new Error("Attempt to convert incompatible type '" + fromUnit.name + "'' to '" + toUnit.name + "'");
}
};
if (to.per) {
checkCompatibility(from, to.per);
return from.value / to.per.value;
} else if (to.as) {
checkCompatibility(from, to.as);
return to.as.value / from.value;
} else {
throw new Error("units.ratio() received arguments it couldn't understand.");
}
};
/** Scale 'val' to a different unit of the same type.
Usage: convert(1, { from: unit.KILOGRAM, to: unit.GRAM }) === 1000
*/
exports.convert = convert = function(val, fromTo) {
var from = fromTo && fromTo.from,
to = fromTo && fromTo.to;
if (!from) {
throw new Error("units.convert() did not receive a \"from\" argument");
}
if (!to) {
throw new Error("units.convert() did not receive a \"to\" argument");
}
return val * ratio(to, { per: from });
};
});
require.define("/math/index.js", function (require, module, exports, __dirname, __filename) {
exports.normal = require('./distributions').normal;
exports.getWindowedAverager = require('./utils').getWindowedAverager;
});
require.define("/math/distributions.js", function (require, module, exports, __dirname, __filename) {
/*jslint eqnull: true */
// Simple (Box-Muller) univariate-normal random number generator.
//
// The 'science.js' library includes a Box-Muller implementation which is likely to be slower, especially in a
// modern Javascript engine, because it uses a rejection method to pick the random point in the unit circle.
// See discussion on pp. 1-3 of:
// http://www.math.nyu.edu/faculty/goodman/teaching/MonteCarlo2005/notes/GaussianSampling.pdf
//
exports.normal = (function() {
var next = null;
return function(mean, sd) {
if (mean == null) mean = 0;
if (sd == null) sd = 1;
var r, ret, theta, u1, u2;
if (next) {
ret = next;
next = null;
return ret;
}
u1 = Math.random();
u2 = Math.random();
theta = 2 * Math.PI * u1;
r = Math.sqrt(-2 * Math.log(u2));
next = mean + sd * (r * Math.sin(theta));
return mean + sd * (r * Math.cos(theta));
};
}());
});
require.define("/math/utils.js", function (require, module, exports, __dirname, __filename) {
/*jslint eqnull: true */
/**
Returns a function which accepts a single numeric argument and returns:
* the arithmetic mean of the windowSize most recent inputs, including the current input
* NaN if there have not been windowSize inputs yet.
The default windowSize is 1000.
*/
exports.getWindowedAverager = function(windowSize) {
if (windowSize == null) windowSize = 1000; // default window size
var i = 0,
vals = [],
sum_vals = 0;
return function(val) {
sum_vals -= (vals[i] || 0);
sum_vals += val;
vals[i] = val;
if (++i === windowSize) i = 0;
if (vals.length === windowSize) {
return sum_vals / windowSize;
}
else {
// don't allow any numerical comparisons with result to be true
return NaN;
}
}
};
});
require.define("/potentials/index.js", function (require, module, exports, __dirname, __filename) {
var potentials = exports.potentials = {};
exports.coulomb = require('./coulomb');
exports.getLennardJonesCalculator = require('./lennard-jones').getLennardJonesCalculator;
});
require.define("/potentials/coulomb.js", function (require, module, exports, __dirname, __filename) {
var
constants = require('../constants'),
unit = constants.unit,
COULOMB_CONSTANT_IN_METERS_PER_FARAD = constants.COULOMB_CONSTANT.as( constants.unit.METERS_PER_FARAD ),
NANOMETERS_PER_METER = constants.ratio(unit.NANOMETER, { per: unit.METER }),
COULOMBS_SQ_PER_ELEMENTARY_CHARGE_SQ = Math.pow( constants.ratio(unit.COULOMB, { per: unit.ELEMENTARY_CHARGE }), 2),
EV_PER_JOULE = constants.ratio(unit.EV, { per: unit.JOULE }),
MW_FORCE_UNITS_PER_NEWTON = constants.ratio(unit.MW_FORCE_UNIT, { per: unit.NEWTON }),
// Coulomb constant for expressing potential in eV given elementary charges, nanometers
k_ePotential = COULOMB_CONSTANT_IN_METERS_PER_FARAD *
COULOMBS_SQ_PER_ELEMENTARY_CHARGE_SQ *
NANOMETERS_PER_METER *
EV_PER_JOULE,
// Coulomb constant for expressing force in Dalton*nm/fs^2 given elementary charges, nanometers
k_eForce = COULOMB_CONSTANT_IN_METERS_PER_FARAD *
COULOMBS_SQ_PER_ELEMENTARY_CHARGE_SQ *
NANOMETERS_PER_METER *
NANOMETERS_PER_METER *
MW_FORCE_UNITS_PER_NEWTON,
// Exports
/** Input units:
r: nanometers,
q1, q2: elementary charges
Output units: eV
*/
potential = exports.potential = function(r, q1, q2) {
return k_ePotential * ((q1 * q2) / r);
},
/** Input units:
r_sq: nanometers^2
q1, q2: elementary charges
Output units: "MW Force Units" (Dalton * nm / fs^2)
*/
forceFromSquaredDistance = exports.forceFromSquaredDistance = function(r_sq, q1, q2) {
return -k_eForce * ((q1 * q2) / r_sq);
},
/** Input units:
r: nanometers,
q1, q2: elementary charges
Output units: "MW Force Units" (Dalton * nm / fs^2)
*/
force = exports.force = function(r, q1, q2) {
return forceFromSquaredDistance(r*r, q1, q2);
};
});
require.define("/potentials/lennard-jones.js", function (require, module, exports, __dirname, __filename) {
var constants = require('../constants'),
unit = constants.unit,
NANOMETERS_PER_METER = constants.ratio( unit.NANOMETER, { per: unit.METER }),
MW_FORCE_UNITS_PER_NEWTON = constants.ratio( unit.MW_FORCE_UNIT, { per: unit.NEWTON });
/**
Returns a new object with methods for calculating the force and potential for a Lennard-Jones
potential with particular values of its parameters epsilon and sigma. These can be adjusted.
To avoid the needing to take square roots during calculation of pairwise forces, there are
also methods which calculate the inter-particle potential directly from a squared distance, and
which calculate the quantity (force/distance) directly from a squared distance.
This function also accepts a callback function which will be called with a hash representing
the new coefficients, whenever the LJ coefficients are changed for the returned calculator.
*/
exports.getLennardJonesCalculator = function(cb) {
var epsilon, // parameter; depth of the potential well, in eV
sigma, // parameter: characteristic distance from particle, in nm
rmin, // distance from particle at which the potential is at its minimum
alpha_Potential, // precalculated; units are eV * nm^12
beta_Potential, // precalculated; units are eV * nm^6
alpha_Force, // units are "MW Force Units" * nm^13
beta_Force, // units are "MW Force Units" * nm^7
coefficients = function(e, s) {
// Input units:
// epsilon: eV
// sigma: nm
if (arguments.length) {
epsilon = e;
sigma = s;
rmin = Math.pow(2, 1/6) * sigma;
alpha_Potential = 4 * epsilon * Math.pow(sigma, 12);
beta_Potential = 4 * epsilon * Math.pow(sigma, 6);
// (1 J * nm^12) = (1 N * m * nm^12)
// (1 N * m * nm^12) * (b nm / m) * (c MWUnits / N) = (abc MWUnits nm^13)
alpha_Force = 12 * constants.convert(alpha_Potential, { from: unit.EV, to: unit.JOULE }) * NANOMETERS_PER_METER * MW_FORCE_UNITS_PER_NEWTON;
beta_Force = 6 * constants.convert(beta_Potential, { from: unit.EV, to: unit.JOULE }) * NANOMETERS_PER_METER * MW_FORCE_UNITS_PER_NEWTON;
}
var coefficients = {
epsilon: epsilon,
sigma : sigma,
rmin : rmin
};
if (typeof cb === 'function') cb(coefficients);
return coefficients;
},
/**
Input units: r_sq: nm^2
Output units: eV
minimum is at r=rmin, V(rmin) = 0
*/
potentialFromSquaredDistance = function(r_sq) {
return alpha_Potential*Math.pow(r_sq, -6) - beta_Potential*Math.pow(r_sq, -3) + epsilon;
},
/**
Input units: r_sq: nm^2
Output units: MW Force Units / nm (= Dalton / fs^2)
*/
forceOverDistanceFromSquaredDistance = function(r_sq) {
// optimizing divisions actually does appear to be *slightly* faster
var r_minus2nd = 1 / r_sq,
r_minus6th = r_minus2nd * r_minus2nd * r_minus2nd,
r_minus8th = r_minus6th * r_minus2nd,
r_minus14th = r_minus8th * r_minus6th;
return alpha_Force*r_minus14th - beta_Force*r_minus8th;
};
return {
coefficients: coefficients,
setEpsilon: function(e) {
return coefficients(e, sigma);
},
setSigma: function(s) {
return coefficients(epsilon, s);
},
// "fast" forms which avoid the need for a square root
potentialFromSquaredDistance: potentialFromSquaredDistance,
/**
Input units: r: nm
Output units: eV
*/
potential: function(r) {
return potentialFromSquaredDistance(r*r);
},
forceOverDistanceFromSquaredDistance: forceOverDistanceFromSquaredDistance,
/**
Input units: r: nm
Output units: MW Force Units (= Dalton * nm / fs^2)
*/
force: function(r) {
return r * forceOverDistanceFromSquaredDistance(r*r);
}
};
};
});
require.define("/md2d.js", function (require, module, exports, __dirname, __filename) {
/*globals Float32Array */
/*globals Float32Array window*/
/*jslint eqnull: true */
if (typeof window === 'undefined') window = {};
var model = exports.model = {},
arrays = require('./arrays/arrays').arrays,
constants = require('./constants'),
unit = constants.unit,
math = require('./math'),
coulomb = require('./potentials').coulomb,
lennardJones = window.lennardJones = require('./potentials').getLennardJonesCalculator(),
// from A. Rahman "Correlations in the Motion of Atoms in Liquid Argon", Physical Review 136 pp. A405–A411 (1964)
ARGON_LJ_EPSILON_IN_EV = -120 * constants.BOLTZMANN_CONSTANT.as(unit.EV_PER_KELVIN),
ARGON_LJ_SIGMA_IN_NM = 0.34,
ARGON_MASS_IN_DALTON = 39.95,
ARGON_MASS_IN_KG = constants.convert(ARGON_MASS_IN_DALTON, { from: unit.DALTON, to: unit.KILOGRAM }),
BOLTZMANN_CONSTANT_IN_JOULES = constants.BOLTZMANN_CONSTANT.as( unit.JOULES_PER_KELVIN ),
makeIntegrator,
ljfLimitsNeedToBeUpdated = true,
setup_ljf_limits,
setup_coulomb_limits,
// TODO: Actually check for Safari. Typed arrays are faster almost everywhere
// ... except Safari.
notSafari = true,
hasTypedArrays = (function() {
try {
new Float32Array();
}
catch(e) {
return false;
}
return true;
}()),
// having finite values for these are a hack that get the relative strength of the forces wrong
maxLJRepulsion = -Infinity,
// determined by sigma
cutoffDistance_LJ,
size = [10, 10],
//
// Individual property arrays for the particles
//
radius, px, py, x, y, vx, vy, speed, ax, ay, mass, charge,
//
// Total mass of all particles in the system
//
totalMass,
// the total mass of all particles
//
// Number of individual properties for a particle
//
nodePropertiesCount = 12,
//
// A two dimensional array consisting of arrays of particle property values
//
nodes,
//
// Indexes into the nodes array for the individual particle property arrays
//
// Access to these within this module will be faster if they are vars in this closure rather than property lookups.
// However, publish the indices to model.INDICES for use outside this module.
//
RADIUS_INDEX = 0,
PX_INDEX = 1,
PY_INDEX = 2,
X_INDEX = 3,
Y_INDEX = 4,
VX_INDEX = 5,
VY_INDEX = 6,
SPEED_INDEX = 7,
AX_INDEX = 8,
AY_INDEX = 9,
MASS_INDEX = 10,
CHARGE_INDEX = 11;
model.INDICES = {
RADIUS : RADIUS_INDEX,
PX : PX_INDEX,
PY : PY_INDEX,
X : X_INDEX,
Y : Y_INDEX,
VX : VX_INDEX,
VY : VY_INDEX,
SPEED : SPEED_INDEX,
AX : AX_INDEX,
AY : AY_INDEX,
MASS : MASS_INDEX,
CHARGE : CHARGE_INDEX
};
lennardJones.setEpsilon(ARGON_LJ_EPSILON_IN_EV);
lennardJones.setSigma(ARGON_LJ_SIGMA_IN_NM);
model.setSize = function(x) {
//size = x;
};
// FIXME: disabled for now, so the view doesn't try to change epsilon
model.setLJEpsilon = function(e) {
lennardJones.setEpsilon(e);
ljfLimitsNeedToBeUpdated = true;
};
// FIXME: disabled for now, so the view doesn't try to change sigma
model.setLJSigma = function(s) {
lennardJones.setSigma(s);
ljfLimitsNeedToBeUpdated = true;
};
model.getLJEpsilon = function() {
return lennardJones.coefficients().epsilon;
};
model.getLJSigma = function() {
return lennardJones.coefficients().sigma;
};
// Returns the LJ calculator. Be careful with it!
model.getLJCalculator = function() {
return lennardJones;
};
//
// Calculate the minimum and maximum distances for applying Lennard-Jones forces
//
setup_ljf_limits = function() {
// for any epsilon:
// 1 - lennardJones.potential(5*lennardJones.coefficients().rmin) / lennardJones.potential(Infinity) ~= 1e-4
cutoffDistance_LJ = lennardJones.coefficients().rmin * 5;
ljfLimitsNeedToBeUpdated = false;
};
//
// Calculate the minimum and maximum distances for applying Coulomb forces
//
setup_coulomb_limits = function() {
};
model.createNodes = function(options) {
options = options || {};
var num = options.num || 50,
temperature = options.temperature || 100,
rmin = lennardJones.coefficients().rmin,
mol_rmin_radius_factor = 0.5,
// special-case:
arrayType = (hasTypedArrays && notSafari) ? 'Float32Array' : 'regular',
k_inJoulesPerKelvin = constants.BOLTZMANN_CONSTANT.as(unit.JOULES_PER_KELVIN),
mass_in_kg, v0_MKS, v0,
i, r, c, nrows, ncols, rowSpacing, colSpacing,
vMagnitude, vDirection,
pCMx = 0,
pCMy = 0,
vCMx, vCMy;
nrows = Math.floor(Math.sqrt(num));
ncols = Math.ceil(num/nrows);
model.nodes = nodes = arrays.create(nodePropertiesCount, null, 'regular');
// model.INDICES.RADIUS = 0
nodes[model.INDICES.RADIUS] = arrays.create(num, rmin * mol_rmin_radius_factor, arrayType );
model.radius = radius = nodes[model.INDICES.RADIUS];
// model.INDICES.PX = 1;
nodes[model.INDICES.PX] = arrays.create(num, 0, arrayType);
model.px = px = nodes[model.INDICES.PX];
// model.INDICES.PY = 2;
nodes[model.INDICES.PY] = arrays.create(num, 0, arrayType);
model.py = py = nodes[model.INDICES.PY];
// model.INDICES.X = 3;
nodes[model.INDICES.X] = arrays.create(num, 0, arrayType);
model.x = x = nodes[model.INDICES.X];
// model.INDICES.Y = 4;
nodes[model.INDICES.Y] = arrays.create(num, 0, arrayType);
model.y = y = nodes[model.INDICES.Y];
// model.INDICES.VX = 5;
nodes[model.INDICES.VX] = arrays.create(num, 0, arrayType);
model.vx = vx = nodes[model.INDICES.VX];
// model.INDICES.VY = 6;
nodes[model.INDICES.VY] = arrays.create(num, 0, arrayType);
model.vy = vy = nodes[model.INDICES.VY];
// model.INDICES.SPEED = 7;
nodes[model.INDICES.SPEED] = arrays.create(num, 0, arrayType);
model.speed = speed = nodes[model.INDICES.SPEED];
// model.INDICES.AX = 8;
nodes[model.INDICES.AX] = arrays.create(num, 0, arrayType);
model.ax = ax = nodes[model.INDICES.AX];
// model.INDICES.AY = 9;
nodes[model.INDICES.AY] = arrays.create(num, 0, arrayType);
model.ay = ay = nodes[model.INDICES.AY];
// model.INDICES.MASS = 10;
nodes[model.INDICES.MASS] = arrays.create(num, ARGON_MASS_IN_DALTON, arrayType);
model.mass = mass = nodes[model.INDICES.MASS];
totalMass = model.totalMass = ARGON_MASS_IN_DALTON * num;
// model.INDICES.CHARGE = 11;
nodes[model.INDICES.CHARGE] = arrays.create(num, 0, arrayType);
model.charge = charge = nodes[model.INDICES.CHARGE];
colSpacing = size[0] / (1+ncols);
rowSpacing = size[1] / (1+nrows);
console.log('initializing to temp', temperature);
// Arrange molecules in a lattice. Not guaranteed to have CM exactly on center, and is an artificially low-energy
// configuration. But it works OK for now.
i = -1;
for (r = 1; r <= nrows; r++) {
for (c = 1; c <= ncols; c++) {
i++;
if (i === num) break;
x[i] = c*colSpacing;
y[i] = r*rowSpacing;
// Randomize velocities, exactly balancing the motion of the center of mass by making the second half of the
// set of atoms have the opposite velocities of the first half. (If the atom number is odd, the "odd atom out"
// should have 0 velocity).
//
// Note that although the instantaneous temperature will be 'temperature' exactly, the temperature will quickly
// settle to a lower value because we are initializing the atoms spaced far apart, in an artificially low-energy
// configuration.
if (i < Math.floor(num/2)) { // 'middle' atom will have 0 velocity
// Note kT = m<v^2>/2 because there are 2 degrees of freedom per atom, not 3
// TODO: define constants to avoid unnecesssary conversions below.
mass_in_kg = constants.convert(mass[i], { from: unit.DALTON, to: unit.KILOGRAM });
v0_MKS = Math.sqrt(2 * k_inJoulesPerKelvin * temperature / mass_in_kg);
// FIXME: why does this velocity need a sqrt(2)/10 correction?
// (no, not because of potentials...)
v0 = constants.convert(v0_MKS, { from: unit.METERS_PER_SECOND, to: unit.MW_VELOCITY_UNIT });
vMagnitude = math.normal(v0, v0/4);
vDirection = 2 * Math.random() * Math.PI;
vx[i] = vMagnitude * Math.cos(vDirection);
vy[i] = vMagnitude * Math.sin(vDirection);
vx[num-i-1] = -vx[i];
vy[num-i-1] = -vy[i];
}
pCMx += vx[i] * mass[i];
pCMy += vy[i] * mass[i];
ax[i] = 0;
ay[i] = 0;
speed[i] = Math.sqrt(vx[i] * vx[i] + vy[i] * vy[i]);
charge[i] = 2*(i%2)-1; // alternate negative and positive charges
}
}
vCMx = pCMx / totalMass;
vCMy = pCMy / totalMass;
};
makeIntegrator = function(args) {
var time = 0,
setOnceState = args.setOnceState,
readWriteState = args.readWriteState,
settableState = args.settableState || {},
outputState = window.state = {},
size = setOnceState.size,
ax = readWriteState.ax,
ay = readWriteState.ay,
charge = readWriteState.charge,
nodes = readWriteState.nodes,
N = nodes[0].length,
radius = readWriteState.radius,
speed = readWriteState.speed,
vx = readWriteState.vx,
vy = readWriteState.vy,
x = readWriteState.x,
y = readWriteState.y,
useCoulombInteraction = settableState.useCoulombInteraction,
useLennardJonesInteraction = settableState.useLennardJonesInteraction,
useThermostat = settableState.useThermostat,
// Desired temperature. We will simulate coupling to an infinitely large heat bath at desired
// temperature T_target.
T_target = settableState.targetTemperature,
// Set to true when a temperature change is requested, reset to false when system approaches temperature
temperatureChangeInProgress = false,
// Whether to immediately break out of the integration loop when the target temperature is reached.
// Used only by relaxToTemperature()
breakOnTargetTemperature = false,
// Coupling factor for Berendsen thermostat. In theory, 1 = "perfectly" constrained temperature.
// (Of course, we're not measuring temperature *quite* correctly.)
thermostatCouplingFactor = 0.1,
// Tolerance for (T_actual - T_target) relative to T_target
tempTolerance = 0.001,
// Take a value T, return an average of the last n values
T_windowed,
getWindowSize = function() {
// Average over a larger window if Coulomb force (which should result in larger temperature excursions)
// is in effect. 50 vs. 10 below were chosen by fiddling around, not for any theoretical reasons.
return useCoulombInteraction ? 1000 : 1000;
},
adjustTemperature = function(options) {
if (options == null) options = {};
var windowSize = options.windowSize || getWindowSize();
temperatureChangeInProgress = true;
T_windowed = math.getWindowedAverager( windowSize );
},
/**
Input units:
KE: "MW Energy Units" (Dalton * nm^2 / fs^2)
Output units:
T: K
*/
KE_to_T = function(internalKEinMWUnits) {
// In 2 dimensions, kT = (2/N_df) * KE
// We are using "internal coordinates" from which 2 (1?) angular and 2 translational degrees of freedom have
// been removed
var N_df = 2 * N - 4,
averageKEinMWUnits = (2 / N_df) * internalKEinMWUnits,
averageKEinJoules = constants.convert(averageKEinMWUnits, { from: unit.MW_ENERGY_UNIT, to: unit.JOULE });
return averageKEinJoules / BOLTZMANN_CONSTANT_IN_JOULES;
},
x_CM, y_CM, // x, y position of center of mass in "real" coordinates
px_CM, py_CM, // x, y velocity of center of mass in "real" coordinates
vx_CM, vy_CM, // x, y velocity of center of mass in "real" coordinates
omega_CM, // angular velocity around the center of mass
cross = function(a, b) {
return a[0]*b[1] - a[1]*b[0];
},
sumSquare = function(a,b) {
return a*a + b*b;
},
calculateOmega_CM = function() {
var i, I_CM = 0, L_CM = 0;
for (i = 0; i < N; i++) {
// I_CM = sum over N of of mr_i x p_i (where r_i and p_i are position & momentum vectors relative to the CM)
I_CM += mass[i] * cross( [x[i]-x_CM, y[i]-y_CM], [vx[i]-vx_CM, vy[i]-vy_CM]);
L_CM += mass[i] * sumSquare( x[i]-x_CM, y[i]-y_CM );
}
return I_CM / L_CM;
},
convertToReal = function(i) {
vx[i] = vx[i] + vx_CM - omega_CM * (y[i] - y_CM);
vy[i] = vy[i] + vy_CM + omega_CM * (x[i] - x_CM);
},
convertToInternal = function(i) {
vx[i] = vx[i] - vx_CM + omega_CM * (y[i] - y_CM);
vy[i] = vy[i] - vy_CM - omega_CM * (x[i] - x_CM);
},
i;
x_CM = y_CM = px_CM = py_CM = vx_CM = vy_CM = 0;
for (i = 0; i < N; i++) {
x_CM += x[i];
y_CM += y[i];
px_CM += vx[i] * mass[i];
py_CM += vy[i] * mass[i];
}
x_CM /= N;
y_CM /= N;
vx_CM = px_CM / totalMass;
vy_CM = py_CM / totalMass;
omega_CM = calculateOmega_CM();
outputState.time = time;
return {
useCoulombInteraction : function(v) {
if (v !== useCoulombInteraction) {
useCoulombInteraction = v;
adjustTemperature();
}
},
useLennardJonesInteraction : function(v) {
if (v !== useLennardJonesInteraction) {
useLennardJonesInteraction = v;
if (useLennardJonesInteraction) {
adjustTemperature();
}
}
},
useThermostat : function(v) {
useThermostat = v;
},
setTargetTemperature : function(v) {
console.log('target temp = ', v);
if (v !== T_target) {
T_target = v;
adjustTemperature();
}
T_target = v;
},
relaxToTemperature: function(T) {
if (T != null) T_target = T;
// doesn't work on IE9
// console.log("T_target = ", T_target);
// override window size
adjustTemperature();
breakOnTargetTemperature = true;
while (temperatureChangeInProgress) {
this.integrate();
}
breakOnTargetTemperature = false;
},
getOutputState: function() {
return outputState;
},
integrate: function(duration, dt) {
// FIXME. Recommended timestep for accurate simulation is τ/200
// using rescaled t where t → τ(mσ²/ϵ)^½ (~= 1 ps for argon)
// This is hardcoded below for the "Argon" case by setting dt = 5 fs:
if (duration == null) duration = 250; // how much "time" to integrate over
if (dt == null) dt = 5;
if (ljfLimitsNeedToBeUpdated) setup_ljf_limits();
var t_start = time,
n_steps = Math.floor(duration/dt), // number of steps
dt_sq = dt*dt, // time step, squared
i,
j,
v_sq, r_sq,
x_sum, y_sum,
cutoffDistance_LJ_sq = cutoffDistance_LJ * cutoffDistance_LJ,
maxLJRepulsion_sq = maxLJRepulsion * maxLJRepulsion,
f, f_over_r, aPair_over_r, aPair_x, aPair_y, // pairwise forces /accelerations and their x, y components
dx, dy,
iloop,
leftwall = radius[0],
bottomwall = radius[0],
rightwall = size[0] - radius[0],
topwall = size[1] - radius[0],
realKEinMWUnits, // KE in "real" coordinates, in MW Units
PE, // potential energy, in eV
twoKE_internal, // 2*KE in "internal" coordinates, in MW Units
T, // instantaneous temperature, in Kelvin
vRescalingFactor; // rescaling factor for Berendsen thermostat
// measurements to be accumulated during the integration loop:
// pressure = 0;
// when coordinates are converted to "real" coordinates when leaving this method, so convert back
twoKE_internal = 0;
for (i = 0; i < N; i++) {
convertToInternal(i);
twoKE_internal += mass[i] * (vx[i] * vx[i] + vy[i] * vy[i]);
}
T = KE_to_T( twoKE_internal/2 );
// update time
for (iloop = 1; iloop <= n_steps; iloop++) {
time = t_start + iloop*dt;
if (temperatureChangeInProgress && Math.abs(T_windowed(T) - T_target) <= T_target * tempTolerance) {
temperatureChangeInProgress = false;
if (breakOnTargetTemperature) break;
}
// rescale velocities based on ratio of target temp to measured temp (Berendsen thermostat)
vRescalingFactor = 1;
if (temperatureChangeInProgress || useThermostat && T > 0) {
vRescalingFactor = Math.sqrt(1 + thermostatCouplingFactor * (T_target / T - 1));
}
// Initialize sums such as 'twoKE_internal' which need be accumulated once per integration loop:
twoKE_internal = 0;
x_sum = 0;
y_sum = 0;
px_CM = 0;
py_CM = 0;
//
// Use velocity Verlet integration to continue particle movement integrating acceleration with
// existing position and previous position while managing collision with boundaries.
//
// Update positions for first half of verlet integration
//
for (i = 0; i < N; i++) {
// Rescale v(t) using T(t)
if (vRescalingFactor !== 1) {
vx[i] *= vRescalingFactor;
vy[i] *= vRescalingFactor;
}
// (1) convert velocities from "internal" to "real" velocities before calculating x, y and updating px, py
convertToReal(i);
// calculate x(t+dt) from v(t) and a(t)
x[i] += vx[i]*dt + 0.5*ax[i]*dt_sq;
y[i] += vy[i]*dt + 0.5*ay[i]*dt_sq;
v_sq = vx[i]*vx[i] + vy[i]*vy[i];
speed[i] = Math.sqrt(v_sq);
// Bounce off vertical walls.
if (x[i] < leftwall) {
x[i] = leftwall + (leftwall - x[i]);
vx[i] *= -1;
} else if (x[i] > rightwall) {
x[i] = rightwall - (x[i] - rightwall);
vx[i] *= -1;
}
// Bounce off horizontal walls
if (y[i] < bottomwall) {
y[i] = bottomwall + (bottomwall - y[i]);
vy[i] *= -1;
} else if (y[i] > topwall) {
y[i] = topwall - (y[i] - topwall);
vy[i] *= -1;
}
// Bouncing of walls like changes the overall momentum and center of mass, so accumulate them for later
px_CM += mass[i] * vx[i];
py_CM += mass[i] * vy[i];
x_sum += x[i];
y_sum += y[i];
}
// (2) recaclulate CM, v_CM, omega_CM for translation back to "internal" coordinates
// Note:
// px_CM = px_CM(t+dt) even though we haven't updated velocities using accelerations a(t) and a(t+dt).
// That is because the accelerations are strictly pairwise and should be momentum-conserving.
// Momentum
x_CM = x_sum / N;
y_CM = y_sum / N;
vx_CM = px_CM / totalMass;
vy_CM = py_CM / totalMass;
omega_CM = calculateOmega_CM();
for (i = 0; i < N; i++) {
// FIRST HALF of calculation of v(t+dt): v1(t+dt) <- v(t) + 0.5*a(t)*dt;
vx[i] += 0.5*ax[i]*dt;
vy[i] += 0.5*ay[i]*dt;
// now that we used ax[i], ay[i] from a(t), zero them out for accumulation of pairwise interactions in a(t+dt)
ax[i] = 0;
ay[i] = 0;
}
// Calculate a(t+dt), step 2: Sum over all pairwise interactions.
if (useLennardJonesInteraction || useCoulombInteraction) {
for (i = 0; i < N; i++) {
for (j = i+1; j < N; j++) {
dx = x[j] - x[i];
dy = y[j] - y[i];
r_sq = dx*dx + dy*dy;
if (useLennardJonesInteraction && r_sq < cutoffDistance_LJ_sq) {
f_over_r = lennardJones.forceOverDistanceFromSquaredDistance(r_sq);
// Cap force to maxLJRepulsion. This should be a relatively rare occurrence, so ignore
// the cost of the (expensive) square root calculation.
if (f_over_r * f_over_r * r_sq > maxLJRepulsion_sq) {
f_over_r = maxLJRepulsion / Math.sqrt(r_sq);
}
// Units of fx, fy are "MW Force Units", Dalton * nm / fs^2
aPair_over_r = f_over_r / mass[i];
aPair_x = aPair_over_r * dx;
aPair_y = aPair_over_r * dy;
// positive = attractive, negative = repulsive
ax[i] += aPair_x;
ay[i] += aPair_y;
ax[j] -= aPair_x;
ay[j] -= aPair_y;
}
if (useCoulombInteraction) {
f = coulomb.forceFromSquaredDistance(r_sq, charge[i], charge[j]);
f_over_r = f / Math.sqrt(r_sq);
aPair_over_r = f_over_r / mass[i];
aPair_x = aPair_over_r * dx;
aPair_y = aPair_over_r * dy;
ax[i] += aPair_x;
ay[i] += aPair_y;
ax[j] -= aPair_x;
ay[j] -= aPair_y;
}
}
}
}
// SECOND HALF of calculation of v(t+dt): v(t+dt) <- v1(t+dt) + 0.5*a(t+dt)*dt
for (i = 0; i < N; i++) {
vx[i] += 0.5*ax[i]*dt;
vy[i] += 0.5*ay[i]*dt;
convertToInternal(i);
v_sq = vx[i]*vx[i] + vy[i]*vy[i];
twoKE_internal += mass[i] * v_sq;
speed[i] = Math.sqrt(v_sq);
}
// Calculate T(t+dt) from v(t+dt)
T = KE_to_T( twoKE_internal/2 );
}
// Calculate potentials in eV. Note that we only want to do this once per call to integrate(), not once per
// integration loop!
PE = 0;
realKEinMWUnits= 0;
for (i = 0; i < N; i++) {
convertToReal(i);
realKEinMWUnits += 0.5 * mass[i] * vx[i] * vx[i] + vy[i] * vy[i];
for (j = i+1; j < N; j++) {
dx = x[j] - x[i];
dy = y[j] - y[i];
r_sq = dx*dx + dy*dy;
// report total potentials as POSITIVE, i.e., - the value returned by potential calculators
if (useLennardJonesInteraction ) {
PE += -lennardJones.potentialFromSquaredDistance(r_sq);
}
if (useCoulombInteraction) {
PE += -coulomb.potential(Math.sqrt(r_sq), charge[i], charge[j]);
}
}
}
// State to be read by the rest of the system:
outputState.time = time;
outputState.pressure = 0;// (time - t_start > 0) ? pressure / (time - t_start) : 0;
outputState.PE = PE;
outputState.KE = constants.convert(realKEinMWUnits, { from: unit.MW_ENERGY_UNIT, to: unit.EV });
outputState.T = T;
outputState.pCM = [px_CM, py_CM];
outputState.CM = [x_CM, y_CM];
outputState.vCM = [vx_CM, vy_CM];
outputState.omega_CM = omega_CM;
}
};
};
model.getIntegrator = function(options, integratorOutputState) {
options = options || {};
var lennard_jones_forces = options.lennard_jones_forces || true,
coulomb_forces = options.coulomb_forces || false,
temperature_control = options.temperature_control || false,
temperature = options.temperature || 1,
integrator;
// just needs to be done once, right now.
setup_coulomb_limits();
integrator = makeIntegrator({
setOnceState: {
size : size
},
settableState: {
useLennardJonesInteraction : lennard_jones_forces,
useCoulombInteraction : coulomb_forces,
useThermostat : temperature_control,
targetTemperature : temperature
},
readWriteState: {
ax : ax,
ay : ay,
charge : charge,
nodes : nodes,
px : px,
py : py,
radius : radius,
speed : speed,
vx : vx,
vy : vy,
x : x,
y : y
},
outputState: integratorOutputState
});
// get initial state
integrator.integrate(0);
return integrator;
};
});
require("/md2d.js");
exports = {};
if (typeof console === 'undefined') {
console = {} ;
console.log = console.info = console.warn = console.error = print;
}
var model = require('./md2d').model,
nodes,
integrator, state;
model.createNodes();
nodes = model.nodes;
integrator = model.getIntegrator();
state = integrator.getOutputState();
exports.run = function() {
var n = 1000,
runs = 5,
result,
results = [],
ave,
i, j, begin;
// warm up
console.log( "*** MD warmup: " + n + " steps");
for (i = 0; i < n; i++) {
integrator.integrate();
}
console.log( "*** MD benchmark: " + runs + ' runs, ' + n + " steps");
for (j = 1; j <= runs; j++) {
begin = Date.now();
for (i = 0; i < n; i++) {
integrator.integrate();
}
result = +(Date.now() - begin) / n * 1000;
results.push(result);
console.log( "*** MD run " + j + ': '+ result);
}
ave = results.reduce(function(prev, current) { return prev + current }) / runs;
console.log( "*** MD ave: " + ave);
};
exports.run();
[marking valueOf 0x4e53a440 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)]
[marking toString 0x4e53a3d4 for recompilation, reason: small function, ICs with typeinfo: 1/1 (100%)]
[marking IsPrimitive 0x4e53b304 for recompilation, reason: small function, ICs with typeinfo: 0/0 (100%)]
Did not inline ToObject called from valueOf (target not inlineable).
[optimizing: valueOf / 4e53a441 - took 1.589 ms]
[optimizing: IsPrimitive / 4e53b305 - took 0.118 ms]
Did not inline FunctionSourceString called from toString (target not inlineable).
[optimizing: toString / 4e53a3d5 - took 0.070 ms]
initializing to temp 100
[marking pow 0x4e53b534 for recompilation, reason: small function, ICs with typeinfo: 1/2 (50%)]
Did not inline NonNumberToNumber called from pow (target not inlineable).
Did not inline NonNumberToNumber called from pow (target not inlineable).
[optimizing: pow / 4e53b535 - took 0.430 ms]
[marking exports.getLennardJonesCalculator.potentialFromSquaredDistance 0x30741130 for recompilation, reason: small function, ICs with typeinfo: 8/8 (100%)]
Inlining builtin 0x4e53b535 <JS Function pow>
Inlining builtin 0x4e53b535 <JS Function pow>
[optimizing: exports.getLennardJonesCalculator.potentialFromSquaredDistance / 30741131 - took 0.214 ms]
*** MD warmup: 1000 steps
[marking sqrt 0x4e53b34c for recompilation, reason: small function, ICs with typeinfo: 0/1 (0%)]
Did not inline NonNumberToNumber called from sqrt (target not inlineable).
[disabled optimization for sqrt]
[marking exports.getLennardJonesCalculator.forceOverDistanceFromSquaredDistance 0x30741154 for recompilation, reason: small function, ICs with typeinfo: 8/8 (100%)]
[optimizing: exports.getLennardJonesCalculator.forceOverDistanceFromSquaredDistance / 30741155 - took 0.135 ms]
[marking makeIntegrator.integrate 0x30755990 for recompilation, reason: hot and stable, ICs with typeinfo: 152/285 (53%)]
[marking cross 0x3074fe0c for recompilation, reason: small function, ICs with typeinfo: 7/7 (100%)]
[marking sumSquare 0x3074fe30 for recompilation, reason: small function, ICs with typeinfo: 3/3 (100%)]
[optimizing: cross / 3074fe0d - took 0.186 ms]
[optimizing: sumSquare / 3074fe31 - took 0.067 ms]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 30755991 - took 13.928 ms]
39 ms: Scavenge 1.7 (18.4) -> 1.0 (18.4) MB, 0 ms [Runtime::PerformGC].
[marking calculateOmega_CM 0x30f0b1b8 for recompilation, reason: hot and stable, ICs with typeinfo: 20/21 (95%)]
42 ms: Scavenge 1.7 (18.4) -> 1.0 (19.4) MB, 0 ms [Runtime::PerformGC].
Inlined cross called from calculateOmega_CM.
Inlined sumSquare called from calculateOmega_CM.
[optimizing: calculateOmega_CM / 3691152d - took 1.123 ms]
**** DEOPT: makeIntegrator.integrate at bailout #436, address 0x0, frame size 1004
;;; @2986: check-maps.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @436]
translating makeIntegrator.integrate => node=1794, height=112
0xbfffe274: [top + 136] <- 0x369115ed ; [esp + 964] 0x369115ed <an Object>
0xbfffe270: [top + 132] <- 0x4e508091 <undefined> ; literal
0xbfffe26c: [top + 128] <- 5 ; [esp + 724] (smi)
0xbfffe268: [top + 124] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 120] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 116] <- 0x3691145d ; context
0xbfffe25c: [top + 112] <- 0x36911615 ; function
0xbfffe258: [top + 108] <- 0x4e508091 <undefined> ; literal
0xbfffe254: [top + 104] <- 0x4e508091 <undefined> ; literal
0xbfffe250: [top + 100] <- 2.899928e-05 ; [esp + 32]
0xbfffe24c: [top + 96] <- 0x4e508091 <undefined> ; literal
0xbfffe248: [top + 92] <- 0x307183ad ; [esp + 420] 0x307183ad <Number: 12.66506888820448>
0xbfffe244: [top + 88] <- 0x3070c509 ; [esp + 740] 0x3070c509 <Number: 109.6535405897494>
0xbfffe240: [top + 84] <- 0x4e508091 <undefined> ; literal
0xbfffe23c: [top + 80] <- 9.809181e+00 ; [esp + 200]
0xbfffe238: [top + 76] <- 0x4e508091 <undefined> ; literal
0xbfffe234: [top + 72] <- 0x4e508091 <undefined> ; literal
0xbfffe230: [top + 68] <- 50 ; [esp + 468] (smi)
0xbfffe22c: [top + 64] <- 0x4e508091 <undefined> ; literal
0xbfffe228: [top + 60] <- 1.908185e-01 ; [esp + 208]
0xbfffe224: [top + 56] <- 1.908185e-01 ; [esp + 216]
0xbfffe220: [top + 52] <- 0x4e508091 <undefined> ; literal
0xbfffe21c: [top + 48] <- 0x4e508091 <undefined> ; literal
0xbfffe218: [top + 44] <- 51 ; [esp + 880] (smi)
0xbfffe214: [top + 40] <- 0x4e508091 <undefined> ; literal
0xbfffe210: [top + 36] <- 0x4e508091 <undefined> ; literal
0xbfffe20c: [top + 32] <- 25 ; [esp + 736] (smi)
0xbfffe208: [top + 28] <- 0x4e508091 <undefined> ; literal
0xbfffe204: [top + 24] <- 9.809181e+00 ; [esp + 224]
0xbfffe200: [top + 20] <- 0 ; [esp + 956] (smi)
0xbfffe1fc: [top + 16] <- 0x4e508091 <undefined> ; literal
0xbfffe1f8: [top + 12] <- 50 ; [esp + 936] (smi)
0xbfffe1f4: [top + 8] <- 3.641172e+00 ; [esp + 232]
0xbfffe1f0: [top + 4] <- inf ; [esp + 240]
0xbfffe1ec: [top + 0] <- 0x4e508091 <undefined> ; literal
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=1794, pc=0x3c838741, state=NO_REGISTERS, took 0.172 ms]
Materializing a new heap number 0x30718419 [2.899928e-05] in slot 0xbfffe250
Materializing a new heap number 0x30718425 [9.809181e+00] in slot 0xbfffe23c
Materializing a new heap number 0x30718431 [1.908185e-01] in slot 0xbfffe228
Materializing a new heap number 0x3071843d [1.908185e-01] in slot 0xbfffe224
Materializing a new heap number 0x30718449 [9.809181e+00] in slot 0xbfffe204
Materializing a new heap number 0x30718455 [3.641172e+00] in slot 0xbfffe1f4
Materializing a new heap number 0x30718461 [inf] in slot 0xbfffe1f0
[removing optimized code for: makeIntegrator.integrate]
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 191/285 (67%)]
[marking convertToInternal 0x3691b7d4 for recompilation, reason: small function, ICs with typeinfo: 14/14 (100%)]
[optimizing: convertToInternal / 3691b7d5 - took 0.360 ms]
[marking convertToReal 0x3691b840 for recompilation, reason: small function, ICs with typeinfo: 14/14 (100%)]
[optimizing: convertToReal / 3691b841 - took 0.292 ms]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 11.812 ms]
[marking exports.ratio.checkCompatibility 0x30790690 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
[marking exports.ratio.ratio 0x3691b9dc for recompilation, reason: small function, ICs with typeinfo: 6/13 (46%)]
[optimizing: exports.ratio.ratio / 3691b9dd - took 0.370 ms]
[marking exports.convert.convert 0x3691b81c for recompilation, reason: small function, ICs with typeinfo: 4/6 (66%)]
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
[optimizing: exports.convert.convert / 3691b81d - took 0.324 ms]
60 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
[marking KE_to_T 0x3691b7f8 for recompilation, reason: small function, ICs with typeinfo: 10/10 (100%)]
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
[optimizing: KE_to_T / 3691b7f9 - took 0.440 ms]
[marking exports.ratio.checkCompatibility 0x30ffdc6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
63 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
66 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f71f70 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
70 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307d6068 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
72 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
75 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074b9f0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
78 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fac068 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
**** DEOPT: makeIntegrator.integrate at bailout #192, address 0x0, frame size 984
;;; @1420: deoptimize.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @192]
translating makeIntegrator.integrate => node=745, height=132
0xbfffe274: [top + 156] <- 0x369115ed ; [esp + 944] 0x369115ed <an Object>
0xbfffe270: [top + 152] <- 0x4e508091 <undefined> ; literal
0xbfffe26c: [top + 148] <- 5 ; [esp + 700] (smi)
0xbfffe268: [top + 144] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 140] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 136] <- 0x3691145d ; context
0xbfffe25c: [top + 132] <- 0x36911615 ; function
0xbfffe258: [top + 128] <- 0x4e508091 <undefined> ; literal
0xbfffe254: [top + 124] <- 1.511559e+02 ; [esp + 104]
0xbfffe250: [top + 120] <- 0x4e508091 <undefined> ; literal
0xbfffe24c: [top + 116] <- 0x4e508091 <undefined> ; literal
0xbfffe248: [top + 112] <- 0x4e508091 <undefined> ; literal
0xbfffe244: [top + 108] <- 0x30fc35f9 ; [esp + 716] 0x30fc35f9 <Number: 119.5661367097682>
0xbfffe240: [top + 104] <- 0x4e508091 <undefined> ; literal
0xbfffe23c: [top + 100] <- 9.809181e+00 ; [esp + 200]
0xbfffe238: [top + 96] <- 0x00000002 ; [esp + 680] 1
0xbfffe234: [top + 92] <- 0x4e508091 <undefined> ; literal
0xbfffe230: [top + 88] <- 40 ; [esp + 676] (smi)
0xbfffe22c: [top + 84] <- 0x4e508091 <undefined> ; literal
0xbfffe228: [top + 80] <- 1.908185e-01 ; [esp + 208]
0xbfffe224: [top + 76] <- 1.908185e-01 ; [esp + 216]
0xbfffe220: [top + 72] <- 0x4e508091 <undefined> ; literal
0xbfffe21c: [top + 68] <- 0x4e508091 <undefined> ; literal
0xbfffe218: [top + 64] <- 3 ; [esp + 860] (smi)
0xbfffe214: [top + 60] <- 0x4e508091 <undefined> ; literal
0xbfffe210: [top + 56] <- 8.065526e-08 ; [esp + 96]
0xbfffe20c: [top + 52] <- 25 ; [esp + 712] (smi)
0xbfffe208: [top + 48] <- 2.033296e+02 ; [esp + 112]
0xbfffe204: [top + 44] <- 9.809181e+00 ; [esp + 224]
0xbfffe200: [top + 40] <- 3500 ; [esp + 936] (smi)
0xbfffe1fc: [top + 36] <- 0 ; literal
0xbfffe1f8: [top + 32] <- 50 ; [esp + 916] (smi)
0xbfffe1f4: [top + 28] <- 3.641172e+00 ; [esp + 232]
0xbfffe1f0: [top + 24] <- inf ; [esp + 240]
0xbfffe1ec: [top + 20] <- 0x4e508091 <undefined> ; literal
0xbfffe1e8: [top + 16] <- 0x3691bc85 ; [esp + 648] 0x3691bc85 <JS Array[50]>
0xbfffe1e4: [top + 12] <- 40 ; [esp + 676] (smi)
0xbfffe1e0: [top + 8] <- 1.908185e-01 ; [esp + 208]
0xbfffe1dc: [top + 4] <- 1.908185e-01 ; [esp + 208]
0xbfffe1d8: [top + 0] <- 0x30fc39c5 ; eax 0x30fc39c5 <Number: 0.1903275831003384>
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=745, pc=0x3c836fd5, state=TOS_REG, took 0.112 ms]
Materializing a new heap number 0x30fc39d1 [1.511559e+02] in slot 0xbfffe254
Materializing a new heap number 0x30fc39dd [9.809181e+00] in slot 0xbfffe23c
Materializing a new heap number 0x30fc39e9 [1.908185e-01] in slot 0xbfffe228
Materializing a new heap number 0x30fc39f5 [1.908185e-01] in slot 0xbfffe224
Materializing a new heap number 0x30fc3a01 [8.065526e-08] in slot 0xbfffe210
Materializing a new heap number 0x30fc3a0d [2.033296e+02] in slot 0xbfffe208
Materializing a new heap number 0x30fc3a19 [9.809181e+00] in slot 0xbfffe204
Materializing a new heap number 0x30fc3a25 [3.641172e+00] in slot 0xbfffe1f4
Materializing a new heap number 0x30fc3a31 [inf] in slot 0xbfffe1f0
Materializing a new heap number 0x30fc3a3d [1.908185e-01] in slot 0xbfffe1e0
Materializing a new heap number 0x30fc3a49 [1.908185e-01] in slot 0xbfffe1dc
[removing optimized code for: makeIntegrator.integrate]
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 197/285 (69%)]
80 ms: Scavenge 2.1 (19.4) -> 1.1 (19.4) MB, 0 ms [Runtime::PerformGC].
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 11.002 ms]
95 ms: Scavenge 2.2 (20.4) -> 1.2 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f6846c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
98 ms: Scavenge 2.2 (20.4) -> 1.2 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ca9ec for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
102 ms: Scavenge 2.2 (20.4) -> 1.2 (20.4) MB, 0 ms [Runtime::PerformGC].
**** DEOPT: makeIntegrator.integrate at bailout #182, address 0x0, frame size 960
;;; @1368: deoptimize.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @182]
translating makeIntegrator.integrate => node=794, height=128
0xbfffe274: [top + 152] <- 0x369115ed ; [esp + 920] 0x369115ed <an Object>
0xbfffe270: [top + 148] <- 0x4e508091 <undefined> ; literal
0xbfffe26c: [top + 144] <- 5 ; [esp + 676] (smi)
0xbfffe268: [top + 140] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 136] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 132] <- 0x3691145d ; context
0xbfffe25c: [top + 128] <- 0x36911615 ; function
0xbfffe258: [top + 124] <- 0x4e508091 <undefined> ; literal
0xbfffe254: [top + 120] <- 1.452418e+02 ; [esp + 96]
0xbfffe250: [top + 116] <- 0x4e508091 <undefined> ; literal
0xbfffe24c: [top + 112] <- 0x4e508091 <undefined> ; literal
0xbfffe248: [top + 108] <- 0x4e508091 <undefined> ; literal
0xbfffe244: [top + 104] <- 0x30f14535 ; [esp + 692] 0x30f14535 <Number: 127.7462098538917>
0xbfffe240: [top + 100] <- 0x4e508091 <undefined> ; literal
0xbfffe23c: [top + 96] <- 9.809181e+00 ; [esp + 200]
0xbfffe238: [top + 92] <- 0x00000002 ; [esp + 656] 1
0xbfffe234: [top + 88] <- 0x4e508091 <undefined> ; literal
0xbfffe230: [top + 84] <- 39 ; [esp + 652] (smi)
0xbfffe22c: [top + 80] <- 0x4e508091 <undefined> ; literal
0xbfffe228: [top + 76] <- 1.908185e-01 ; [esp + 208]
0xbfffe224: [top + 72] <- 1.908185e-01 ; [esp + 216]
0xbfffe220: [top + 68] <- 0x4e508091 <undefined> ; literal
0xbfffe21c: [top + 64] <- 0x4e508091 <undefined> ; literal
0xbfffe218: [top + 60] <- 27 ; [esp + 836] (smi)
0xbfffe214: [top + 56] <- 0x4e508091 <undefined> ; literal
0xbfffe210: [top + 52] <- 3.590381e-08 ; [esp + 88]
0xbfffe20c: [top + 48] <- 25 ; [esp + 688] (smi)
0xbfffe208: [top + 44] <- 1.950513e+02 ; [esp + 104]
0xbfffe204: [top + 40] <- 9.809181e+00 ; [esp + 224]
0xbfffe200: [top + 36] <- 4750 ; [esp + 912] (smi)
0xbfffe1fc: [top + 32] <- 0 ; literal
0xbfffe1f8: [top + 28] <- 50 ; [esp + 892] (smi)
0xbfffe1f4: [top + 24] <- 3.641172e+00 ; [esp + 232]
0xbfffe1f0: [top + 20] <- inf ; [esp + 240]
0xbfffe1ec: [top + 16] <- 0x4e508091 <undefined> ; literal
0xbfffe1e8: [top + 12] <- 0x3691bc85 ; [esp + 624] 0x3691bc85 <JS Array[50]>
0xbfffe1e4: [top + 8] <- 39 ; [esp + 652] (smi)
0xbfffe1e0: [top + 4] <- 9.809181e+00 ; [esp + 200]
0xbfffe1dc: [top + 0] <- 0x30f148e9 ; eax 0x30f148e9 <Number: 9.809912702661403>
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=794, pc=0x3c8370be, state=NO_REGISTERS, took 0.109 ms]
Materializing a new heap number 0x30f148f5 [1.452418e+02] in slot 0xbfffe254
Materializing a new heap number 0x30f14901 [9.809181e+00] in slot 0xbfffe23c
Materializing a new heap number 0x30f1490d [1.908185e-01] in slot 0xbfffe228
Materializing a new heap number 0x30f14919 [1.908185e-01] in slot 0xbfffe224
Materializing a new heap number 0x30f14925 [3.590381e-08] in slot 0xbfffe210
Materializing a new heap number 0x30f14931 [1.950513e+02] in slot 0xbfffe208
Materializing a new heap number 0x30f1493d [9.809181e+00] in slot 0xbfffe204
Materializing a new heap number 0x30f14949 [3.641172e+00] in slot 0xbfffe1f4
Materializing a new heap number 0x30f14955 [inf] in slot 0xbfffe1f0
Materializing a new heap number 0x30f14961 [9.809181e+00] in slot 0xbfffe1e0
[removing optimized code for: makeIntegrator.integrate]
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 203/285 (71%)]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 9.975 ms]
**** DEOPT: makeIntegrator.integrate at bailout #212, address 0x0, frame size 940
;;; @1566: deoptimize.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @212]
translating makeIntegrator.integrate => node=853, height=132
0xbfffe274: [top + 156] <- 0x369115ed ; [esp + 900] 0x369115ed <an Object>
0xbfffe270: [top + 152] <- 0x4e508091 <undefined> ; literal
0xbfffe26c: [top + 148] <- 5 ; [esp + 656] (smi)
0xbfffe268: [top + 144] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 140] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 136] <- 0x3691145d ; context
0xbfffe25c: [top + 132] <- 0x36911615 ; function
0xbfffe258: [top + 128] <- 0x4e508091 <undefined> ; literal
0xbfffe254: [top + 124] <- 5.290859e+00 ; [esp + 96]
0xbfffe250: [top + 120] <- 0x4e508091 <undefined> ; literal
0xbfffe24c: [top + 116] <- 0x4e508091 <undefined> ; literal
0xbfffe248: [top + 112] <- 0x4e508091 <undefined> ; literal
0xbfffe244: [top + 108] <- 0x30fa0a79 ; [esp + 672] 0x30fa0a79 <Number: 128.9404219915817>
0xbfffe240: [top + 104] <- 0x4e508091 <undefined> ; literal
0xbfffe23c: [top + 100] <- 9.809181e+00 ; [esp + 200]
0xbfffe238: [top + 96] <- 0x00000002 ; [esp + 636] 1
0xbfffe234: [top + 92] <- 0x4e508091 <undefined> ; literal
0xbfffe230: [top + 88] <- 3 ; [esp + 632] (smi)
0xbfffe22c: [top + 84] <- 0x4e508091 <undefined> ; literal
0xbfffe228: [top + 80] <- 1.908185e-01 ; [esp + 208]
0xbfffe224: [top + 76] <- 1.908185e-01 ; [esp + 216]
0xbfffe220: [top + 72] <- 0x4e508091 <undefined> ; literal
0xbfffe21c: [top + 68] <- 0x4e508091 <undefined> ; literal
0xbfffe218: [top + 64] <- 50 ; [esp + 816] (smi)
0xbfffe214: [top + 60] <- 0x4e508091 <undefined> ; literal
0xbfffe210: [top + 56] <- 5.161405e-08 ; [esp + 88]
0xbfffe20c: [top + 52] <- 25 ; [esp + 668] (smi)
0xbfffe208: [top + 48] <- 6.351336e+00 ; [esp + 104]
0xbfffe204: [top + 44] <- 9.809181e+00 ; [esp + 224]
0xbfffe200: [top + 40] <- 4750 ; [esp + 892] (smi)
0xbfffe1fc: [top + 36] <- 0 ; literal
0xbfffe1f8: [top + 32] <- 50 ; [esp + 872] (smi)
0xbfffe1f4: [top + 28] <- 3.641172e+00 ; [esp + 232]
0xbfffe1f0: [top + 24] <- inf ; [esp + 240]
0xbfffe1ec: [top + 20] <- 0x4e508091 <undefined> ; literal
0xbfffe1e8: [top + 16] <- 0x3691bc0d ; [esp + 604] 0x3691bc0d <JS Array[50]>
0xbfffe1e4: [top + 12] <- 3 ; [esp + 632] (smi)
0xbfffe1e0: [top + 8] <- 1.908185e-01 ; [esp + 216]
0xbfffe1dc: [top + 4] <- 1.908185e-01 ; [esp + 216]
0xbfffe1d8: [top + 0] <- 0x30fa0acd ; eax 0x30fa0acd <Number: 0.190217007126439>
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=853, pc=0x3c8371a7, state=TOS_REG, took 0.077 ms]
Materializing a new heap number 0x30fa0ad9 [5.290859e+00] in slot 0xbfffe254
Materializing a new heap number 0x30fa0ae5 [9.809181e+00] in slot 0xbfffe23c
Materializing a new heap number 0x30fa0af1 [1.908185e-01] in slot 0xbfffe228
Materializing a new heap number 0x30fa0afd [1.908185e-01] in slot 0xbfffe224
Materializing a new heap number 0x30fa0b09 [5.161405e-08] in slot 0xbfffe210
Materializing a new heap number 0x30fa0b15 [6.351336e+00] in slot 0xbfffe208
Materializing a new heap number 0x30fa0b21 [9.809181e+00] in slot 0xbfffe204
Materializing a new heap number 0x30fa0b2d [3.641172e+00] in slot 0xbfffe1f4
Materializing a new heap number 0x30fa0b39 [inf] in slot 0xbfffe1f0
Materializing a new heap number 0x30fa0b45 [1.908185e-01] in slot 0xbfffe1e0
Materializing a new heap number 0x30fa0b51 [1.908185e-01] in slot 0xbfffe1dc
[removing optimized code for: makeIntegrator.integrate]
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 209/285 (73%)]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 10.851 ms]
**** DEOPT: makeIntegrator.integrate at bailout #503, address 0x0, frame size 868
;;; Deferred code @2674: tagged-to-i.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @503]
translating makeIntegrator.integrate => node=1793, height=112
0xbfffe274: [top + 136] <- 0x369115ed ; [esp + 864] 0x369115ed <an Object>
0xbfffe270: [top + 132] <- 0x4e508091 ; [esp + 860] 0x4e508091 <undefined>
0xbfffe26c: [top + 128] <- 0x0000000a ; [esp + 856] 5
0xbfffe268: [top + 124] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 120] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 116] <- 0x3691145d ; context
0xbfffe25c: [top + 112] <- 0x36911615 ; function
0xbfffe258: [top + 108] <- 0x30fc9a79 ; [esp + 848] 0x30fc9a79 <Number: 1.024436820491647e-10>
0xbfffe254: [top + 104] <- 0x30fa4ed1 ; [esp + 844] 0x30fa4ed1 <Number: 227.5012030821723>
0xbfffe250: [top + 100] <- 0x30ff0911 ; eax 0x30ff0911 <Number: 2.870697929113043e-05>
0xbfffe24c: [top + 96] <- 0x30fc9a49 ; [esp + 836] 0x30fc9a49 <Number: 3.055464748165751e-09>
0xbfffe248: [top + 92] <- 0x30ff0ab5 ; [esp + 832] 0x30ff0ab5 <Number: 12.55424974221436>
0xbfffe244: [top + 88] <- 0x30fcbe79 ; [esp + 828] 0x30fcbe79 <Number: 128.6548441292393>
0xbfffe240: [top + 84] <- 0x00000064 ; [esp + 824] 50
0xbfffe23c: [top + 80] <- 0x30fa0ae5 ; [esp + 820] 0x30fa0ae5 <Number: 9.809181451787406>
0xbfffe238: [top + 76] <- 0x00000002 ; [esp + 816] 1
0xbfffe234: [top + 72] <- 0x4e508091 ; [esp + 812] 0x4e508091 <undefined>
0xbfffe230: [top + 68] <- 0x0000005e ; [esp + 808] 47
0xbfffe22c: [top + 64] <- 0x30ff0a85 ; [esp + 804] 0x30ff0a85 <Number: -0.7056799707491779>
0xbfffe228: [top + 60] <- 0x30fa0af1 ; [esp + 800] 0x30fa0af1 <Number: 0.1908185482125934>
0xbfffe224: [top + 56] <- 0x30fa0afd ; [esp + 796] 0x30fa0afd <Number: 0.1908185482125934>
0xbfffe220: [top + 52] <- 0x30ff0a61 ; [esp + 792] 0x30ff0a61 <Number: -4.33128373368187>
0xbfffe21c: [top + 48] <- 0x30ff0a91 ; [esp + 788] 0x30ff0a91 <Number: 19.25800300277372>
0xbfffe218: [top + 44] <- 0x00000066 ; [esp + 784] 51
0xbfffe214: [top + 40] <- 0x30fc9a85 ; [esp + 780] 0x30fc9a85 <Number: -2.037926509386503e-11>
0xbfffe210: [top + 36] <- 0x30fcbdc5 ; [esp + 776] 0x30fcbdc5 <Number: 9.40892324592782e-08>
0xbfffe20c: [top + 32] <- 0x00000032 ; [esp + 772] 25
0xbfffe208: [top + 28] <- 0x30fa4eb9 ; [esp + 768] 0x30fa4eb9 <Number: 244.348406913072>
0xbfffe204: [top + 24] <- 0x30fa0b21 ; [esp + 764] 0x30fa0b21 <Number: 9.809181451787406>
0xbfffe200: [top + 20] <- 0x0000251c ; [esp + 760] 4750
0xbfffe1fc: [top + 16] <- 0x30fcbe01 ; [esp + 756] 0x30fcbe01 <Number: 0.0001026914173668541>
0xbfffe1f8: [top + 12] <- 0x00000064 ; [esp + 752] 50
0xbfffe1f4: [top + 8] <- 0x30fa0b2d ; [esp + 748] 0x30fa0b2d <Number: 3.641171834196185>
0xbfffe1f0: [top + 4] <- 0x30fa0b39 ; [esp + 744] 0x30fa0b39 <Number: inf>
0xbfffe1ec: [top + 0] <- 0x30fc9a6d ; [esp + 740] 0x30fc9a6d <Number: 7.648222148099501e-11>
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=1793, pc=0x3c8386fe, state=NO_REGISTERS, took 0.118 ms]
[removing optimized code for: makeIntegrator.integrate]
126 ms: Scavenge 2.4 (20.4) -> 1.4 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 209/285 (73%)]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 10.016 ms]
[marking exports.ratio.checkCompatibility 0x307f7d30 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
139 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
142 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3076a260 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
145 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd0260 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
148 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
151 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f46a48 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
154 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307afb54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
157 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
161 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072ad34 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
163 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f97484 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
166 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
170 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f130b0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
174 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077d580 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
176 ms: Scavenge 2.5 (20.4) -> 1.5 (20.4) MB, 0 ms [Runtime::PerformGC].
**** DEOPT: makeIntegrator.integrate at bailout #202, address 0x0, frame size 916
;;; @1512: deoptimize.
[deoptimizing: begin 0x36911615 makeIntegrator.integrate @202]
translating makeIntegrator.integrate => node=902, height=128
0xbfffe274: [top + 152] <- 0x369115ed ; [esp + 876] 0x369115ed <an Object>
0xbfffe270: [top + 148] <- 0x4e508091 <undefined> ; literal
0xbfffe26c: [top + 144] <- 5 ; [esp + 632] (smi)
0xbfffe268: [top + 140] <- 0x3c80db41 ; caller's pc
0xbfffe264: [top + 136] <- 0xbfffe284 ; caller's fp
0xbfffe260: [top + 132] <- 0x3691145d ; context
0xbfffe25c: [top + 128] <- 0x36911615 ; function
0xbfffe258: [top + 124] <- 0x4e508091 <undefined> ; literal
0xbfffe254: [top + 120] <- 1.988925e+02 ; [esp + 96]
0xbfffe250: [top + 116] <- 0x4e508091 <undefined> ; literal
0xbfffe24c: [top + 112] <- 0x4e508091 <undefined> ; literal
0xbfffe248: [top + 108] <- 0x4e508091 <undefined> ; literal
0xbfffe244: [top + 104] <- 0x30f88cad ; [esp + 648] 0x30f88cad <Number: 124.8254732640457>
0xbfffe240: [top + 100] <- 0x4e508091 <undefined> ; literal
0xbfffe23c: [top + 96] <- 9.809181e+00 ; [esp + 200]
0xbfffe238: [top + 92] <- 0x00000002 ; [esp + 612] 1
0xbfffe234: [top + 88] <- 0x4e508091 <undefined> ; literal
0xbfffe230: [top + 84] <- 46 ; [esp + 608] (smi)
0xbfffe22c: [top + 80] <- 0x4e508091 <undefined> ; literal
0xbfffe228: [top + 76] <- 1.908185e-01 ; [esp + 208]
0xbfffe224: [top + 72] <- 1.908185e-01 ; [esp + 216]
0xbfffe220: [top + 68] <- 0x4e508091 <undefined> ; literal
0xbfffe21c: [top + 64] <- 0x4e508091 <undefined> ; literal
0xbfffe218: [top + 60] <- 36 ; [esp + 792] (smi)
0xbfffe214: [top + 56] <- 0x4e508091 <undefined> ; literal
0xbfffe210: [top + 52] <- 5.152823e-08 ; [esp + 88]
0xbfffe20c: [top + 48] <- 25 ; [esp + 644] (smi)
0xbfffe208: [top + 44] <- 2.279946e+02 ; [esp + 104]
0xbfffe204: [top + 40] <- 9.809181e+00 ; [esp + 224]
0xbfffe200: [top + 36] <- 10750 ; [esp + 868] (smi)
0xbfffe1fc: [top + 32] <- 0 ; literal
0xbfffe1f8: [top + 28] <- 50 ; [esp + 848] (smi)
0xbfffe1f4: [top + 24] <- 3.641172e+00 ; [esp + 232]
0xbfffe1f0: [top + 20] <- inf ; [esp + 240]
0xbfffe1ec: [top + 16] <- 0x4e508091 <undefined> ; literal
0xbfffe1e8: [top + 12] <- 0x3691bc0d ; [esp + 580] 0x3691bc0d <JS Array[50]>
0xbfffe1e4: [top + 8] <- 46 ; [esp + 608] (smi)
0xbfffe1e0: [top + 4] <- 9.809181e+00 ; [esp + 224]
0xbfffe1dc: [top + 0] <- 0x30f89109 ; eax 0x30f89109 <Number: 9.809396402226904>
[deoptimizing: end 0x36911615 makeIntegrator.integrate => node=902, pc=0x3c837290, state=NO_REGISTERS, took 0.101 ms]
Materializing a new heap number 0x30f89115 [1.988925e+02] in slot 0xbfffe254
Materializing a new heap number 0x30f89121 [9.809181e+00] in slot 0xbfffe23c
Materializing a new heap number 0x30f8912d [1.908185e-01] in slot 0xbfffe228
Materializing a new heap number 0x30f89139 [1.908185e-01] in slot 0xbfffe224
Materializing a new heap number 0x30f89145 [5.152823e-08] in slot 0xbfffe210
Materializing a new heap number 0x30f89151 [2.279946e+02] in slot 0xbfffe208
Materializing a new heap number 0x30f8915d [9.809181e+00] in slot 0xbfffe204
Materializing a new heap number 0x30f89169 [3.641172e+00] in slot 0xbfffe1f4
Materializing a new heap number 0x30f89175 [inf] in slot 0xbfffe1f0
Materializing a new heap number 0x30f89181 [9.809181e+00] in slot 0xbfffe1e0
[removing optimized code for: makeIntegrator.integrate]
[marking makeIntegrator.integrate 0x36911614 for recompilation, reason: hot and stable, ICs with typeinfo: 215/285 (75%)]
Inlined setup_ljf_limits called from makeIntegrator.integrate.
Inlining builtin 0x4e5393c1 <JS Function floor>
Inlined convertToInternal called from makeIntegrator.integrate.
Did not inline exports.ratio.ratio called from exports.convert.convert (target contains unsupported syntax [early]).
Inlined exports.convert.convert called from KE_to_T.
Inlined KE_to_T called from makeIntegrator.integrate.
Inlined convertToReal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline calculateOmega_CM called from makeIntegrator.integrate (target contains unsupported syntax [early]).
Inlined convertToInternal called from makeIntegrator.integrate.
Inlining builtin 0x4e53b34d <JS Function sqrt>
Did not inline KE_to_T called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline convertToReal called from makeIntegrator.integrate (cumulative AST node limit reached).
Did not inline exports.convert.convert called from makeIntegrator.integrate (cumulative AST node limit reached).
[optimizing: makeIntegrator.integrate / 36911615 - took 12.318 ms]
192 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30746094 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
195 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb04f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
197 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
200 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f25148 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
203 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3078e878 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
206 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe90a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
209 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
212 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f547a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
215 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307af630 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
219 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
222 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30716d68 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
225 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f6c71c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
228 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c8220 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
232 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
235 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072438c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
237 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7e2fc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
240 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307d0030 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
243 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
245 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073152c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
248 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f84938 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
252 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307df31c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
255 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
258 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30742f74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
262 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f93e00 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
265 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307eda1c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
268 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
270 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307486e4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
273 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa054c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
276 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f1b54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
280 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
283 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075282c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
286 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa5f98 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
290 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
292 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0a7b8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
296 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075f734 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
299 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fbbfb4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
301 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
304 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f17e4c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
307 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30771c2c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
310 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fccc8c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
313 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
316 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f23ff8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
320 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30779578 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
323 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fca008 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
326 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
330 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f2cad4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
334 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077cab8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
338 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fccc4c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
342 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
346 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1b844 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
349 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307664a8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
353 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fac7f8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
357 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f741c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
362 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
365 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30743a1c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
369 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8e99c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
374 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307da808 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
378 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
382 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072512c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
386 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7290c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
390 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307bcc2c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
394 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
398 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30713724 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
402 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5aee4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
406 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a85d0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
411 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fefd78 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
414 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
417 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f4c570 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
421 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a1544 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
425 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ffd98c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
428 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
430 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5d8d4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
433 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307bce00 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
436 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
439 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30724630 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
441 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f792c4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
444 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307d6754 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
447 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [allocation failure].
450 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30734738 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
454 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8da9c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
459 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [allocation failure].
[marking exports.ratio.checkCompatibility 0x307dd31c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
463 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
466 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30739180 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
470 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f884e8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
474 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e164c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
477 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
479 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073bbfc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
482 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f92058 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
485 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e343c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
488 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
491 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073e72c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
494 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f966b0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
498 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e6540 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
502 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
505 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307474bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
508 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9bf30 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
510 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f6e98 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
513 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
516 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30755234 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
519 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb1360 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
522 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
525 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f13044 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
528 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30770c28 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
531 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc9a28 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
534 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
537 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f30b1c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
540 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3078e294 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
543 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fef8ec for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
546 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
548 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f58ffc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
551 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ad84c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
556 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
560 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3070ccd4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
563 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5f26c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
566 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b75a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
569 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
572 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30712e7c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
575 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f687b4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
578 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ba14c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
581 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
584 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30716b58 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
587 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f63a94 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
591 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b7ad8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
594 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
597 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3070b6cc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
600 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5d03c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
603 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b335c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
605 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
608 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30708488 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
611 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5f7b4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
613 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b1b14 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
616 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
620 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071051c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
624 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f62d5c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
628 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307bc714 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
630 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
633 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071c7f0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
636 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7bbf8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
640 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307d5834 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
643 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
646 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073e3ac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
648 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f97acc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
652 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307fb8d4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
655 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
658 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3076b00c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
661 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc7d14 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
664 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
667 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3888c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
670 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079e714 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
673 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
677 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30711544 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
679 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7c484 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
683 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ed320 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
686 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
690 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30761788 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
693 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fcfaf4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
696 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
699 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f44c48 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
702 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b7070 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
705 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
708 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072b69c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
710 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9e78c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
713 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
717 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1d880 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
721 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3078768c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
724 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff86a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
728 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
730 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f69298 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
734 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307d7758 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
737 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
740 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30743aac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
742 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa96fc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
745 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
749 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0f04c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
752 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077440c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
757 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd3cc4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
761 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
764 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3f390 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
766 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079917c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
769 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff4110 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
772 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
775 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f597f8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
778 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307abd54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
782 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
785 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30710b58 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
789 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f67c54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
792 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c6734 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
795 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
798 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072a33c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
801 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8baac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
804 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e70f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
807 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
810 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30753304 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
813 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fae8a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
816 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
819 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1614c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
822 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307719c4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
825 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd4718 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
828 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
831 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f40ec4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
833 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079ba6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
836 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
839 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3070b1a8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
841 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f6f994 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
846 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307dc8a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
849 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
852 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074b6c8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
856 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fba7ec for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
860 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
865 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f2d170 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
869 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079dbcc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
873 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
877 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30712d68 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
881 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f88f8c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
884 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f71ec for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
888 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
891 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30774504 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
894 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe9cb0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
896 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
899 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5c424 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
902 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307cebcc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
905 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
907 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30744ac8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
911 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb85bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
914 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
916 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f30598 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
919 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a4bc4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
924 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
927 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307180a0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
930 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f83174 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
933 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e87bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
936 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
939 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30758b44 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
941 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb6150 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
944 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
947 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1ef58 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
951 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077fb20 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
955 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd6994 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
960 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
965 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f38cd8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
969 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307885a8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
973 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd8f98 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
977 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
980 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f28e20 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
983 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30774278 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
985 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [allocation failure].
[marking exports.ratio.checkCompatibility 0x30fb7fa0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
989 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
992 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0954c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
996 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074ba30 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
999 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9871c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1002 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e0780 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1005 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1009 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30733c6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1012 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7ec38 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1015 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c0e0c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1018 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1021 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071591c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1024 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5b96c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1028 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307aa038 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1031 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff4788 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1035 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1039 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f51530 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1043 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a076c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1046 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff9724 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1049 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1052 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f56138 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1055 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307adeac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1059 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1063 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3070cf5c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1066 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f69194 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1069 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c7924 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1073 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1076 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30727458 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1078 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8a74c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1081 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e6e9c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1084 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1087 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30750d6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1091 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30faeec0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1095 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1099 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1b184 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1102 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30777ccc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1105 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fdde14 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1107 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1110 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f442c0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1113 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a87a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1115 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1119 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307133bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1124 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7c354 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1127 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e7b18 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1130 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1133 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30750974 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1136 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fbcac8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1140 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1144 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f28ffc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1147 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079444c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1150 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff7998 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1154 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1157 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f68944 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1160 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ca008 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1163 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1166 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30734978 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1169 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f93cd0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1172 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f9c90 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1175 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1178 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3076281c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1180 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc8d74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1184 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1187 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f35fa8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1191 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3078bf68 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1194 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe7398 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1197 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1200 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f40e74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1202 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307959a0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1206 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe2020 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1209 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1212 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3c564 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1215 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307860e8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1218 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd630c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1222 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1226 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f26568 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1230 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30772c54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1233 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fba190 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1236 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1239 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f11808 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1241 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30763540 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1244 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30faee34 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1247 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1250 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0a4f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1254 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30755a58 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1258 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa5f60 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1262 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f2774 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1265 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1268 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074eb7c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1270 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f99c70 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1273 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307eadfc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1276 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1279 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073e72c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1283 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8f4b0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1286 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307dc6e4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1290 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1293 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073ac6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1296 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f920d8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1299 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307de8f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1302 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1306 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073d5f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1309 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8dcc4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1312 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e765c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1316 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1319 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307428c8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1322 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9ad6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1325 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f02fc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1328 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1331 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075102c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1334 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa4308 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1338 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307fcd60 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1341 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1344 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307572fc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1347 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb28a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1350 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1354 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1b25c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1357 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077192c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1360 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd17e4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1364 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1366 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f367dc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1369 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30798e6c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1373 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff2918 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1376 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1380 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5b3d0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1384 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b7e38 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1387 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1391 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30721b10 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1394 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7df10 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1397 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e20b4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1400 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1403 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074892c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1406 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30faa208 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1409 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1412 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f14474 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1416 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3076a2ac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1419 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc8558 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1422 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1425 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f23edc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1428 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077b37c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1431 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fcb108 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1434 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1437 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f27fd4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1440 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30774dfc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1443 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc5478 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1446 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1449 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1480c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1452 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30763cd8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1455 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fab4d4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1459 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f894c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1463 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1466 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30750fb4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1469 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f95e94 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1473 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e1210 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1476 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1479 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307281a8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1482 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f6c6dc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1485 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ac21c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1488 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ff4b48 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1491 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1494 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3bc00 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1497 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3078049c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1500 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fbf4c0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1503 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1507 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0cf38 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1510 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074febc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1513 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f99ce8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1515 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e5600 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1518 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1522 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30730b4c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1525 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7d550 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1529 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c4d28 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1532 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1535 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071f338 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1538 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f6aaa0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1541 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307be070 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1544 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1546 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30712d74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1549 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f66470 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1552 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b32d4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1556 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1560 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3070c854 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1564 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5cf90 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1567 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b7fa4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1570 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1573 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071f460 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1576 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f73c4c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1579 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307cf720 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1581 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1584 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3072e414 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1588 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8cd14 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1591 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e4690 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1595 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1598 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074725c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1600 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9d890 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1603 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307fc4f0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1606 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1609 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075c8e0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1612 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb8ec8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1615 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1618 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f139e4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1622 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3076a7c8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1626 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fc3abc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1629 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1632 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f1f40c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1635 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077cd68 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1638 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd8458 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1641 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1645 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f441f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1648 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3079f838 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1652 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ffc924 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1655 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1658 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f5bfc8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1661 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307b97e0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1664 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1666 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307194e8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1669 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f74e74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1672 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307cbbac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1675 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1679 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30730004 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1682 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f8ef88 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1686 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e180c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1689 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1692 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3074498c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1695 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f996f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1698 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f0cc0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1701 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1704 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30746794 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1707 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f94844 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1710 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307df1bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1714 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1717 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30739e78 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1721 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f88164 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1725 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e252c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1728 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1731 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30740310 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1733 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f9aed4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1736 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307f742c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1739 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1742 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30750920 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1745 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30faa424 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1748 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307ffa74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1752 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1756 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30763418 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1759 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb3d58 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1761 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1764 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f11b98 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1767 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075f9a4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1770 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fb3930 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1772 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1775 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f092dc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1778 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3075c94c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1781 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fabc78 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1784 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307fff38 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1787 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1790 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30760cac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1793 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30faef74 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1796 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1800 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f0d3a0 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1804 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30757af8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1808 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa66e4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1811 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307e9fcc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1815 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1818 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3073c1fc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1821 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f7e920 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1824 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c63bc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1827 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1830 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3071081c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
*** MD benchmark: 5 runs, 1000 steps
1833 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1837 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30799074 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1840 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe4018 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1843 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1846 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3e69c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1849 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307871c4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1853 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd7100 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1856 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1860 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f2af54 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1863 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x3077f8ac for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1866 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd01cc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1869 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1873 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3216c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1876 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30787c7c for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1880 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fe5808 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1884 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1887 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f46adc for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1890 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307a4f04 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1893 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30ffd1f4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1896 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1899 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f64408 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1901 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307c3e64 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1904 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1908 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30721450 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1911 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [allocation failure].
[marking exports.ratio.checkCompatibility 0x30f80198 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1914 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x307dd184 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1918 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1922 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30747e18 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1925 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fa68c8 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1928 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1930 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f12588 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1933 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30772118 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1936 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30fd5cb4 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1939 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
1942 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].
[marking exports.ratio.checkCompatibility 0x30f3ce98 for recompilation, reason: small function, ICs with typeinfo: 2/10 (20%)]
1944 ms: Scavenge 2.6 (20.4) -> 1.6 (20.4) MB, 0 ms [Runtime::PerformGC].