Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1 @@
build/

View File

@ -0,0 +1,16 @@
#include <v8.h>
#include <node.h>
static int c = 0;
void Hello(const v8::FunctionCallbackInfo<v8::Value>& args) {
args.GetReturnValue().Set(c++);
}
void Initialize(v8::Local<v8::Object> target,
v8::Local<v8::Value> module,
void* data) {
NODE_SET_METHOD(target, "hello", Hello);
}
NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize)

View File

@ -0,0 +1,12 @@
{
'targets': [
{
'target_name': 'napi_binding',
'sources': [ 'napi_binding.c' ]
},
{
'target_name': 'binding',
'sources': [ 'binding.cc' ]
}
]
}

View File

@ -0,0 +1,51 @@
// Show the difference between calling a short js function
// relative to a comparable C++ function.
// Reports n of calls per second.
// Note that JS speed goes up, while cxx speed stays about the same.
'use strict';
const assert = require('assert');
const common = require('../../common.js');
// This fails when we try to open with a different version of node,
// which is quite common for benchmarks. so in that case, just
// abort quietly.
let binding;
try {
binding = require(`./build/${common.buildType}/binding`);
} catch {
console.error('misc/function_call.js Binding failed to load');
process.exit(0);
}
const cxx = binding.hello;
let napi_binding;
try {
napi_binding = require(`./build/${common.buildType}/napi_binding`);
} catch {
console.error('misc/function_call/index.js NAPI-Binding failed to load');
process.exit(0);
}
const napi = napi_binding.hello;
let c = 0;
function js() {
return c++;
}
assert(js() === cxx());
const bench = common.createBenchmark(main, {
type: ['js', 'cxx', 'napi'],
n: [1e6, 1e7, 5e7],
});
function main({ n, type }) {
const fn = type === 'cxx' ? cxx : type === 'napi' ? napi : js;
bench.start();
for (let i = 0; i < n; i++) {
fn();
}
bench.end(n);
}

View File

@ -0,0 +1,26 @@
#include <assert.h>
#include <node_api.h>
static int32_t increment = 0;
static napi_value Hello(napi_env env, napi_callback_info info) {
napi_value result;
napi_status status = napi_create_int32(env, increment++, &result);
assert(status == napi_ok);
return result;
}
NAPI_MODULE_INIT() {
napi_value hello;
napi_status status =
napi_create_function(env,
"hello",
NAPI_AUTO_LENGTH,
Hello,
NULL,
&hello);
assert(status == napi_ok);
status = napi_set_named_property(env, exports, "hello", hello);
assert(status == napi_ok);
return exports;
}