You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
var binding = require('./build/default/binding');
|
|
|
|
|
|
|
|
c = 0
|
|
|
|
|
|
|
|
function js() {
|
|
|
|
return c++; //(new Date()).getTime();
|
|
|
|
}
|
|
|
|
|
|
|
|
var cxx = binding.hello;
|
|
|
|
|
|
|
|
var i, N = 100000000;
|
|
|
|
|
|
|
|
console.log(js());
|
|
|
|
console.log(cxx());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var start = new Date();
|
|
|
|
for (i = 0; i < N; i++) {
|
|
|
|
js();
|
|
|
|
}
|
|
|
|
var jsDiff = new Date() - start;
|
|
|
|
console.log(N +" JS function calls: " + jsDiff);
|
|
|
|
|
|
|
|
|
|
|
|
var start = new Date();
|
|
|
|
for (i = 0; i < N; i++) {
|
|
|
|
cxx();
|
|
|
|
}
|
|
|
|
var cxxDiff = new Date() - start;
|
|
|
|
console.log(N +" C++ function calls: " + cxxDiff);
|
|
|
|
|
|
|
|
function toMicro (diff) {
|
|
|
|
return (diff / N) * 1000000;
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log("\nJS function call speed: %d microseconds", toMicro(jsDiff));
|
|
|
|
console.log("C++ function call speed: %d microseconds", toMicro(cxxDiff));
|
|
|
|
|
|
|
|
|
|
|
|
console.log("\nJS speedup " + (cxxDiff / jsDiff));
|
|
|
|
|
|
|
|
|