横向复测/计时。豫
yuyan · 32 行 · 4844 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
寻观「标准库」之书。
「:文言:诸法更番,果同乃录;首轮温机,不入中数。汉语:逐轮交替执行四种方式,校验每次输出;零轮预热,五轮正式,保存 time 的内存原始记录。:」
「参数」者「命令行参数」之「获取参数」于「元」也。
「题」者「第N个」授以「字符串」于「零」于「参数」也。
「数」者「第N个」授以「字符串」于「一」于「参数」也。
「选法」者若「大于」于(「长度」授以「字符串」于「参数」)于「二」则「第N个」授以「字符串」于「二」于「参数」否则『全部』也。
「结构」者「或者」于(「串相等」于「题」于『树基准』)于(「串相等」于「题」于『数组基准』)也。
「尾名」者若「结构」则『结构』否则「题」也。
「参照程序」者若「结构」则『./yy横比结构C』否则『./yy横比C』也。
「参照」者「操作系统」之「子进程」之「获取输出」于「参照程序」于(「列」【「题」,「数」】)也。
若「参照」中「零」则「元」否则「发生事故」授以「有」于『参照失败』。
「测」乃化「整数」而化「字符串」而「有」也。
「测」者会「轮」而会「法」而若「且」于(「非」于(「串相等」于「选法」于『全部』))于(「非」于(「串相等」于「选法」于「法」))则「元」否则(
虑「客参」者(「列」于「字符串」也
若「串相等」于「法」于『C』则「列」【「参照程序」,「题」,「数」】否则
若「串相等」于「法」于『OCaml』则「列」【若「结构」则『./yy横比结构OCaml』否则『./yy横比OCaml』,「题」,「数」】否则
「:文言:C 亦入同引擎,各起一工。汉语:WASI 仅适配 C 的系统接口;与豫言一样新建 Node 和 Worker,算法来自同一份 C 源码。:」
若「串相等」于「法」于『C网页』则「列」【『/opt/homebrew/bin/node』,『--no-warnings』,『-e』,『new (require("node:worker_threads").Worker)("const {workerData}=require('node:worker_threads');const {WASI}=require('node:wasi');const fs=require('node:fs');const w=new WASI({version:'preview1',args:workerData,returnOnExit:true});const m=new WebAssembly.Module(fs.readFileSync(workerData[0]));process.exitCode=w.start(new WebAssembly.Instance(m,w.getImportObject()));",{eval:true,workerData:process.argv.slice(1),resourceLimits:{stackSizeMb:128}}).on("error",e=>{console.error(e);process.exitCode=1;});』,若「结构」则『yy横比结构C.wasm』否则『yy横比C.wasm』,「题」,「数」】否则
「附加」授以「字符串」于
(若「串相等」于「法」于『豫言原生』则「列」【『/usr/bin/env』,『YY_GC_INITIAL_HEAP_SIZE_MB=64』,『./yy横比』附「尾名」附『原生』】否则「列」【『/opt/homebrew/bin/node』,『应用/网页汇编/节点网页汇编宿主/宿主.cjs』,『yy横比』附「尾名」附『.wasm』】)于
(若「结构」则「列」【「题」,「数」】否则「列」【「数」】))而
虑「始」者「操作系统」之「时间」之「获取当前纳秒时间」于「元」而
虑「果」者「操作系统」之「子进程」之「获取输出」于『/usr/bin/time』于(「附加」授以「字符串」于(「列」【『-l』】)于「客参」)而
虑「终」者「操作系统」之「时间」之「获取当前纳秒时间」于「元」而
若「且」于(「果」中「零」)于(「串相等」于(「果」中「一」)于(「参照」中「一」))则(
「操作系统」之「文件系统」之「写文件」于(『应用/性能研究/横向复测/记录/』附「题」附『-』附「数」附『-』附「法」附『-』附(「整数表示」于「轮」)附『.txt』)于(「果」中「二」);
「打印行」于(「间合」于『,』于(「列」【「题」,「数」,「整数表示」于「轮」,「法」,「操作系统」之「时间」之「用时秒数表示」于「始」于「终」】)))
否则「发生事故」授以「有」于(「法」附『失败或输出不符:』附(「果」中「一」)附(「果」中「二」)))也。
「复测」乃化「整数」而「有」也。
「复测」者会「轮」而若「大于」于「轮」于「五」则「元」否则(
「测」于「轮」于『C』;「测」于「轮」于『OCaml』;「测」于「轮」于『豫言Wasm』;「测」于「轮」于『豫言原生』;「测」于「轮」于『C网页』;「复测」于(「加」于「轮」于「一」))也。
「复测」于「零」。