Как собственные надстройки влияют на программу node.js?
У меня есть такие коды:
const test = require('./build/Release/test');
console.time('js');
console.log(f(0, 0, 1000, 1000, 50.6));
console.timeEnd('js');
console.time('c++');
console.log(test.sum(0, 0, 1000, 1000, 50.6));
console.timeEnd('c++');
const test = require('./build/Release/test');
console.time('c++');
console.log(test.sum(0, 0, 1000, 1000, 50.6));
console.timeEnd('c++');
console.time('js');
console.log(f(0, 0, 1000, 1000, 50.6));
console.timeEnd('js');
Работают корректно, дают одинаковые результаты, все отлично, но проблема только в том, что в первом коде JS f() занимает ~15 мс, а во втором примере - ~3 мс. И результаты стабильные (когда я запускаю программу более одного раза, она дает примерно одинаковые результаты). Как это может быть? Почему производительность функции на JS зависит от вызова независимой функции из собственного дополнения?
PS Вот консоль из двух запусков программы:
{"x": -151.932697, "y": 235.000000}
js: 17.064ms
{"x": -151.932697, "y": 235.000000}
c++: 7.908ms
{"x": -151.932697, "y": 235.000000}
c++: 8.191ms
{"x": -151.932697, "y": 235.000000}
js: 2.578ms