MCPcopy Create free account
hub / github.com/apache/fory / parseArgs

Function parseArgs

benchmarks/javascript/benchmark.js:51–95  ·  view source on GitHub ↗
(argv)

Source from the content-addressed store, hash-verified

49let blackhole = 0;
50
51function parseArgs(argv) {
52 const options = {
53 data: "",
54 serializer: "",
55 durationSeconds: DEFAULT_DURATION_SECONDS,
56 output: path.join(__dirname, "benchmark_results.json"),
57 };
58 for (let i = 0; i < argv.length; i += 1) {
59 const arg = argv[i];
60 switch (arg) {
61 case "--data":
62 options.data = String(argv[++i] || "");
63 break;
64 case "--serializer":
65 options.serializer = String(argv[++i] || "");
66 break;
67 case "--duration":
68 options.durationSeconds = Number(argv[++i] || DEFAULT_DURATION_SECONDS);
69 break;
70 case "--output":
71 case "--benchmark_out":
72 options.output = path.resolve(String(argv[++i] || options.output));
73 break;
74 case "--help":
75 case "-h":
76 printUsage();
77 process.exit(0);
78 break;
79 default:
80 throw new Error(`Unknown option: ${arg}`);
81 }
82 }
83 if (!Number.isFinite(options.durationSeconds) || options.durationSeconds <= 0) {
84 throw new Error(`duration must be a positive number, got ${options.durationSeconds}`);
85 }
86 if (options.data && !DATA_ORDER.includes(options.data.toLowerCase())) {
87 throw new Error(`Unknown data type: ${options.data}`);
88 }
89 if (options.serializer && !SERIALIZER_ORDER.includes(options.serializer.toLowerCase())) {
90 throw new Error(`Unknown serializer: ${options.serializer}`);
91 }
92 options.data = options.data.toLowerCase();
93 options.serializer = options.serializer.toLowerCase();
94 return options;
95}
96
97function printUsage() {
98 console.log(`Usage: node benchmark.js [OPTIONS]

Callers 1

mainFunction · 0.85

Calls 4

NumberClass · 0.85
printUsageFunction · 0.85
StringFunction · 0.50
isFiniteMethod · 0.45

Tested by

no test coverage detected