causalityjs
Version:
A library for reactive programming based on Javascript proxies.
81 lines (69 loc) • 1.6 kB
JavaScript
require('../causality').install();
// require('../causality2').install();
var x;
var start, end, time;
// Test 100k observers on array
start = new Date().getTime();
//
// x = c(['a']);
// var index = 0;
// while(index++ < 100000) {
// repeatOnChange(function() {
// var y = x[x.length - 1];
// });
// }
// x.push('b');
//
// end = new Date().getTime();
// time = (end - start);
// console.log(time);
// Test 100k observers on object
start = new Date().getTime();
x = c({z: 5});
var index;
index = 0;
while(index++ < 500000) {
repeatOnChange(function() {
var y = x.z; // necessary....
});
}
// x.z = 10;
end = new Date().getTime();
time = (end - start);
console.log(time);
console.log("fin");
console.log("=============================================");
clearRepeaterLists();
// Test 100k sources for repeater
start = new Date().getTime();
var s = [];
index = 0;
while(index++ < 500000) {
s.push(c({w: 42}));
}
console.log(s.length);
// startTrace();
console.log("Finished building list");
repeatOnChange(function() {
var sum = 100;
var index = 0;
let i = 0;
console.log(index);
s.forEach(function(source) {
// startTrace();
// console.log("a");
// console.time("source.w");
sum += source.w;
// console.timeEnd("source.w");
index++;
// console.log(index++);
});
console.log(index);
var y = sum;
console.log("finished");
});
console.log("Established repeaters, now changing");
s[0].w = 10;
end = new Date().getTime();
time = (end - start);
console.log(time);