build: move zone.js to angular repo (#30962)

PR Close #30962
This commit is contained in:
JiaLiPassion
2019-06-01 00:56:07 +09:00
committed by Kara Erickson
parent 7b3bcc23af
commit 5eb7426216
271 changed files with 30890 additions and 19 deletions

View File

@ -0,0 +1,65 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Zone.js addEventListenerBenchmark</title>
<link rel="stylesheet" href="../css/style.css">
<script src="../../dist/zone.js"></script>
</head>
<body>
<h1>addEventListener Benchmark</h1>
<h2>No Zone</h2>
<button id="b1">Add/Remove same callback</button>
<button id="b2">Add/Remove different callback</button>
<h2>With Zone</h2>
<button id="b3">Add/Remove same callback</button>
<button id="b4">Add/Remove different callback</button>
<div id="rootDiv"></div>
<script>
b1.addEventListener('click', function () { addRemoveCallback(true, false); });
b2.addEventListener('click', function () { addRemoveCallback(false, false); });
b3.addEventListener('click', function () { addRemoveCallback(true, true); });
b4.addEventListener('click', function () { addRemoveCallback(false, true); });
var divs = [];
var callbacks = [];
var size = 100000;
for(var i = 0; i < size; i++) {
var div = document.createElement("div");
var callback = (function(i) { return function() { console.log(i); }; })(i);
rootDiv.appendChild(div);
divs[i] = div;
callbacks[i] = callback;
}
function addRemoveCallback(reuse, useZone) {
var start = performance.now();
var callback = callbacks[0];
for(var i = 0; i < size; i++) {
var div = divs[i];
if (!reuse) callback = callbacks[i];
if (useZone)
div.addEventListener('click', callback);
else
div.__zone_symbol__addEventListener('click', callback);
}
for(var i = 0; i < size; i++) {
var div = divs[i];
if (!reuse) callback = callbacks[i];
if (useZone)
div.removeEventListener('click', callback);
else
div.__zone_symbol__removeEventListener('click', callback);
}
var end = performance.now();
console.log(useZone ? 'use zone': 'native', reuse ? 'reuse' : 'new', end - start, 'ms');
}
</script>
</body>
</html>

View File

@ -0,0 +1,50 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const events = require('events');
const EventEmitter = events.EventEmitter;
require('../../dist/zone-node');
const emitters = [];
const callbacks = [];
const size = 100000;
for (let i = 0; i < size; i++) {
const emitter = new EventEmitter();
const callback = (function(i) { return function() { console.log(i); }; })(i);
emitters[i] = emitter;
callbacks[i] = callback;
}
function addRemoveCallback(reuse, useZone) {
const start = new Date();
let callback = callbacks[0];
for (let i = 0; i < size; i++) {
const emitter = emitters[i];
if (!reuse) callback = callbacks[i];
if (useZone)
emitter.on('msg', callback);
else
emitter.__zone_symbol__addListener('msg', callback);
}
for (let i = 0; i < size; i++) {
const emitter = emitters[i];
if (!reuse) callback = callbacks[i];
if (useZone)
emitter.removeListener('msg', callback);
else
emitter.__zone_symbol__removeListener('msg', callback);
}
const end = new Date();
console.log(useZone ? 'use zone' : 'native', reuse ? 'reuse' : 'new');
console.log('Execution time: %dms', end - start);
}
addRemoveCallback(false, false);
addRemoveCallback(false, true);
addRemoveCallback(true, false);
addRemoveCallback(true, true);