46 lines
970 B
JavaScript
46 lines
970 B
JavaScript
import { dlopen, FFIType } from "bun:ffi";
|
|
|
|
// Funzione JavaScript equivalente
|
|
|
|
function jsTest() {
|
|
let c = "qwertyuiopasdfghjkllzxcvbnm123456789mnbvcxzlkjhgfdsapoiuytrewq1234567890";
|
|
let j = '';
|
|
let h = '';
|
|
|
|
const start = performance.now();
|
|
|
|
for (let a = 0; a < 1000; a++) {
|
|
h = c.toUpperCase();
|
|
j = h.toLowerCase();
|
|
c = j;
|
|
}
|
|
|
|
const end = performance.now();
|
|
console.log(`JavaScript Execution Time: ${end - start}ms`);
|
|
}
|
|
|
|
|
|
// Carica la libreria C
|
|
const path = `./libtesticolo.so`;
|
|
const { symbols } = dlopen(path, {
|
|
testicolo: {
|
|
args: [], // La funzione C non prende argomenti
|
|
returns: FFIType.int, // La funzione C restituisce un intero
|
|
},
|
|
});
|
|
|
|
// Funzione per il test in C
|
|
function cTest() {
|
|
const start = performance.now();
|
|
|
|
// Chiama la funzione C per eseguire il test
|
|
symbols.testicolo();
|
|
|
|
const end = performance.now();
|
|
console.log(`C Execution Time: ${end - start}ms`);
|
|
}
|
|
|
|
// Avvia i test
|
|
jsTest();
|
|
cTest();
|
|
|