Skip to content

ci: merge staging to master #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,18 @@
"jest": true
},
"parser": "@typescript-eslint/parser",
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"prettier"
],
"plugins": [
"import"
],
"parserOptions": {
"project": "tsconfig.json",
"sourceType": "module"
},
"plugins": [
"import"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"rules": {
"linebreak-style": ["error", "unix"],
"no-empty": 1,
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run ts-node
npm run tsx
# run the tests
npm run test
# lint the source code
Expand Down
29 changes: 20 additions & 9 deletions benches/index.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
#!/usr/bin/env ts-node

import fs from 'fs';
import path from 'path';
import fs from 'node:fs';
import path from 'node:path';
import url from 'node:url';
import si from 'systeminformation';
import workerManager from './worker_manager';
import { benchesPath } from './utils/utils.js';
import workerManager from './worker_manager.js';

async function main(): Promise<void> {
await fs.promises.mkdir(path.join(__dirname, 'results'), { recursive: true });
await fs.promises.mkdir(path.join(benchesPath, 'results'), {
recursive: true,
});
await workerManager();
const resultFilenames = await fs.promises.readdir(
path.join(__dirname, 'results'),
path.join(benchesPath, 'results'),
);
const metricsFile = await fs.promises.open(
path.join(__dirname, 'results', 'metrics.txt'),
path.join(benchesPath, 'results', 'metrics.txt'),
'w',
);
let concatenating = false;
for (const resultFilename of resultFilenames) {
if (/.+_metrics\.txt$/.test(resultFilename)) {
const metricsData = await fs.promises.readFile(
path.join(__dirname, 'results', resultFilename),
path.join(benchesPath, 'results', resultFilename),
);
if (concatenating) {
await metricsFile.write('\n');
Expand All @@ -35,9 +39,16 @@ async function main(): Promise<void> {
system: 'model, manufacturer',
});
await fs.promises.writeFile(
path.join(__dirname, 'results', 'system.json'),
path.join(benchesPath, 'results', 'system.json'),
JSON.stringify(systemData, null, 2),
);
}

void main();
if (import.meta.url.startsWith('file:')) {
const modulePath = url.fileURLToPath(import.meta.url);
if (process.argv[1] === modulePath) {
void main();
}
}

export default main;
60 changes: 30 additions & 30 deletions benches/results/metrics.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
# TYPE worker_manager_ops gauge
worker_manager_ops{name="call overhead"} 854
worker_manager_ops{name="parallel call overhead"} 439
worker_manager_ops{name="parallel queue overhead"} 438
worker_manager_ops{name="json stringify of 1 MiB of data"} 18
worker_manager_ops{name="base64 of 1 MiB of data"} 3981
worker_manager_ops{name="md5 Hash of 1 MiB of data"} 759
worker_manager_ops{name="sha256 Hash of 1 MiB of data"} 1887
worker_manager_ops{name="sha512 Hash of 1 MiB of data"} 676
worker_manager_ops{name="transfer Overhead"} 793
worker_manager_ops{name="slice-Copy of 1 MiB of data"} 8508
worker_manager_ops{name="call overhead"} 778
worker_manager_ops{name="parallel call overhead"} 395
worker_manager_ops{name="parallel queue overhead"} 400
worker_manager_ops{name="json stringify of 1 MiB of data"} 30
worker_manager_ops{name="base64 of 1 MiB of data"} 5144
worker_manager_ops{name="md5 Hash of 1 MiB of data"} 820
worker_manager_ops{name="sha256 Hash of 1 MiB of data"} 1908
worker_manager_ops{name="sha512 Hash of 1 MiB of data"} 788
worker_manager_ops{name="transfer Overhead"} 1583
worker_manager_ops{name="slice-Copy of 1 MiB of data"} 5795

# TYPE worker_manager_margin gauge
worker_manager_margin{name="call overhead"} 0.55
worker_manager_margin{name="parallel call overhead"} 0.53
worker_manager_margin{name="parallel queue overhead"} 0.49
worker_manager_margin{name="json stringify of 1 MiB of data"} 1.59
worker_manager_margin{name="base64 of 1 MiB of data"} 2.71
worker_manager_margin{name="md5 Hash of 1 MiB of data"} 1.1
worker_manager_margin{name="sha256 Hash of 1 MiB of data"} 0.15
worker_manager_margin{name="sha512 Hash of 1 MiB of data"} 0.74
worker_manager_margin{name="transfer Overhead"} 0.61
worker_manager_margin{name="slice-Copy of 1 MiB of data"} 1.33
worker_manager_margin{name="call overhead"} 1.36
worker_manager_margin{name="parallel call overhead"} 1.19
worker_manager_margin{name="parallel queue overhead"} 0.82
worker_manager_margin{name="json stringify of 1 MiB of data"} 5.79
worker_manager_margin{name="base64 of 1 MiB of data"} 3.84
worker_manager_margin{name="md5 Hash of 1 MiB of data"} 1.83
worker_manager_margin{name="sha256 Hash of 1 MiB of data"} 0.81
worker_manager_margin{name="sha512 Hash of 1 MiB of data"} 1.6
worker_manager_margin{name="transfer Overhead"} 6.94
worker_manager_margin{name="slice-Copy of 1 MiB of data"} 7.96

# TYPE worker_manager_samples counter
worker_manager_samples{name="call overhead"} 88
worker_manager_samples{name="parallel call overhead"} 85
worker_manager_samples{name="parallel queue overhead"} 89
worker_manager_samples{name="json stringify of 1 MiB of data"} 48
worker_manager_samples{name="base64 of 1 MiB of data"} 71
worker_manager_samples{name="md5 Hash of 1 MiB of data"} 93
worker_manager_samples{name="sha256 Hash of 1 MiB of data"} 96
worker_manager_samples{name="sha512 Hash of 1 MiB of data"} 94
worker_manager_samples{name="transfer Overhead"} 84
worker_manager_samples{name="slice-Copy of 1 MiB of data"} 88
worker_manager_samples{name="call overhead"} 80
worker_manager_samples{name="parallel call overhead"} 80
worker_manager_samples{name="parallel queue overhead"} 80
worker_manager_samples{name="json stringify of 1 MiB of data"} 55
worker_manager_samples{name="base64 of 1 MiB of data"} 72
worker_manager_samples{name="md5 Hash of 1 MiB of data"} 91
worker_manager_samples{name="sha256 Hash of 1 MiB of data"} 93
worker_manager_samples{name="sha512 Hash of 1 MiB of data"} 92
worker_manager_samples{name="transfer Overhead"} 59
worker_manager_samples{name="slice-Copy of 1 MiB of data"} 67
44 changes: 22 additions & 22 deletions benches/results/system.json
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
{
"cpu": {
"manufacturer": "AMD",
"brand": "Ryzen 7 2700X Eight-Core Processor",
"vendor": "AMD",
"family": "23",
"model": "8",
"manufacturer": "Intel",
"brand": "Gen Intel® Core™ i7-1370P",
"vendor": "Intel",
"family": "6",
"model": "186",
"stepping": "2",
"revision": "",
"voltage": "",
"speed": 3.7,
"speedMin": 2.2,
"speedMax": 3.7,
"governor": "performance",
"cores": 16,
"physicalCores": 8,
"performanceCores": 8,
"efficiencyCores": 0,
"speed": 1.62,
"speedMin": 0.4,
"speedMax": 5.2,
"governor": "powersave",
"cores": 20,
"physicalCores": 14,
"performanceCores": 6,
"efficiencyCores": 8,
"processors": 1,
"socket": "",
"flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca sev sev_es",
"flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq tme rdpid movdiri movdir64b fsrm md_clear serialize pconfig arch_lbr ibt flush_l1d arch_capabilities",
"virtualization": true,
"cache": {
"l1d": 262144,
"l1i": 524288,
"l2": 4194304,
"l3": 16777216
"l1d": 557056,
"l1i": 720896,
"l2": 11534336,
"l3": 25165824
}
},
"osInfo": {
"platform": "linux",
"distro": "nixos",
"release": "22.11",
"kernel": "6.1.23",
"release": "24.11",
"kernel": "6.6.47",
"arch": "x64"
},
"system": {
"model": "System Product Name",
"manufacturer": "System manufacturer"
"model": "Precision 3480",
"manufacturer": "Dell Inc."
}
}
14 changes: 7 additions & 7 deletions benches/results/worker_manager.chart.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</head>
<body>
<div class="container">
<canvas id="chart1687501360929" width="16" height="9"></canvas>
<canvas id="chart1741583490433" width="16" height="9"></canvas>
</div>
<script>
const format = (num) => {
Expand All @@ -51,18 +51,18 @@
chunked.map((chunk) => chunk.join('')).join(' ') + fractionStr
)
}
const ctx1687501360929 = document
.getElementById('chart1687501360929')
const ctx1741583490433 = document
.getElementById('chart1741583490433')
.getContext('2d')
const chart1687501360929 = new Chart(ctx1687501360929, {
const chart1741583490433 = new Chart(ctx1741583490433, {
type: 'bar',
data: {
labels: ["call overhead","parallel call overhead","parallel queue overhead","json stringify of 1 MiB of data","base64 of 1 MiB of data","md5 Hash of 1 MiB of data","sha256 Hash of 1 MiB of data","sha512 Hash of 1 MiB of data","transfer Overhead","slice-Copy of 1 MiB of data"],
datasets: [
{
data: [854,439,438,18,3981,759,1887,676,793,8508],
backgroundColor: ["hsl(12.048000000000007, 85%, 55%)","hsl(6.191999999999996, 85%, 55%)","hsl(6.180000000000007, 85%, 55%)","hsl(0.2519999999999925, 85%, 55%)","hsl(56.147999999999996, 85%, 55%)","hsl(10.704000000000002, 85%, 55%)","hsl(26.61600000000001, 85%, 55%)","hsl(9.540000000000003, 85%, 55%)","hsl(11.183999999999992, 85%, 55%)","hsl(120, 85%, 55%)"],
borderColor: ["hsl(12.048000000000007, 85%, 55%)","hsl(6.191999999999996, 85%, 55%)","hsl(6.180000000000007, 85%, 55%)","hsl(0.2519999999999925, 85%, 55%)","hsl(56.147999999999996, 85%, 55%)","hsl(10.704000000000002, 85%, 55%)","hsl(26.61600000000001, 85%, 55%)","hsl(9.540000000000003, 85%, 55%)","hsl(11.183999999999992, 85%, 55%)","hsl(120, 85%, 55%)"],
data: [778,395,400,30,5144,820,1908,788,1583,5795],
backgroundColor: ["hsl(16.116000000000007, 85%, 55%)","hsl(8.18399999999999, 85%, 55%)","hsl(8.280000000000008, 85%, 55%)","hsl(0.6239999999999952, 85%, 55%)","hsl(106.52399999999999, 85%, 55%)","hsl(16.980000000000008, 85%, 55%)","hsl(39.504, 85%, 55%)","hsl(16.319999999999993, 85%, 55%)","hsl(32.78399999999999, 85%, 55%)","hsl(120, 85%, 55%)"],
borderColor: ["hsl(16.116000000000007, 85%, 55%)","hsl(8.18399999999999, 85%, 55%)","hsl(8.280000000000008, 85%, 55%)","hsl(0.6239999999999952, 85%, 55%)","hsl(106.52399999999999, 85%, 55%)","hsl(16.980000000000008, 85%, 55%)","hsl(39.504, 85%, 55%)","hsl(16.319999999999993, 85%, 55%)","hsl(32.78399999999999, 85%, 55%)","hsl(120, 85%, 55%)"],
borderWidth: 2,
},
],
Expand Down
Loading
Loading