新闻详情

新闻详情

首页 / 资讯中心 / 详情

Nushell 开发者如何运行解析器基准测试并用 parser-bench-throughput 脚本统计吞吐

发布时间:2026/9/12 16:54:45来源:尧图网络
Nushell 开发者如何运行解析器基准测试并用 parser-bench-throughput 脚本统计吞吐
Nushell 开发者如何运行解析器基准测试并用 parser-bench-throughput 脚本统计吞吐【免费下载链接】nushellA new type of shell项目地址: https://gitcode.com/GitHub_Trending/nu/nushell在 Nushell 仓库中做解析器相关的性能工作时你需要一条固定的操作路径先运行parser_*系列的 tango 基准测试并把完整输出落盘再用仓库自带的 parser-bench-throughput.nu 脚本解析日志得到每个基准项的字符/字节吞吐chars/sec、bytes/sec。本文覆盖这条主路径从准备环境、运行测试、定位日志文件到验证吞吐报表以及脚本给出的报错如何判断。适用前提你在 Nushell 仓库根目录下工作装有 Rust 工具链cargo可用并且仓库使用 tango-benchCargo.toml 中固定为 0.7.2作为基准框架基准目标位于 benchmarks.rs。parser_* 基准项的命名与数据集吞吐脚本之所以能自动算出吞吐依赖基准名称中编码的数据规模。benchmarks.rs 中的注释明确了命名格式parser_stage_dataset_sizeb_charscstage是解析阶段lex只分词不建 AST、litetokens 转 LiteBlock即流水线结构、parse_blocktokens 转 Block生成 AST 不编译、parse完整流水线lex lite AST 编译dataset是输入数据small约 127 字节的合成短流水线、medium80 条命令的合成流水线规模可预测、large整个crates/nu-std/std目录拼接后的全部 .nu 源码、real_worldtoolkit/mod.nu代表性的 Nushell 脚本尾部127b_125c这样编码的字节数/字符数是 parser-bench-throughput.nu 用正则提取、换算吞吐的依据例如parser_lex_small_127b_125c。准备条件在 Nushell 仓库根目录scripts/与benches/所在层级。cargo可用——运行脚本内部就是调用cargo bench。构建过 debug 版的nu即存在./target/debug/nu可用cargo build得到。两个脚本都用它来执行parser-bench-run.nu 会调用外部^cargoparser-bench-throughput.nu 的用法示例也直接以./target/debug/nu作为解释器。第一步运行 parser_* 基准测试并保存日志在仓库根目录执行./target/debug/nu scripts/parser-bench-run.nu该脚本的行为见 parser-bench-run.nu 源码默认参数--filter parser_*tango 的 glob 过滤只跑名称匹配的基准项、--bench benchmarksbench target 名对应 benches/benchmarks.rs、--out-dir target/parser-bench副作用说明会创建target/parser-bench/目录实际执行的是cargo bench --bench benchmarks -- solo --filter parser_*即编译并运行匹配的基准耗时取决于机器输出stdout stderr合并后保存到日志文件成功后打印Saved parser benchmark log to (路径)并输出该路径失败cargo 非零退出时打印Cargo bench failed with exit code (code)并给出Review output: 日志路径的提示。日志文件名由 bench 名、过滤词和时间戳拼成。默认参数下过滤词parser_*中的*被替换为_文件名形如target/parser-bench/benchmarks-parser__-20260519-125213.log其中时间戳按运行时刻生成上值为脚本用法示例中的文件名样例实际以脚本打印的路径为准。想只跑某一阶段可以显式传参例如./target/debug/nu scripts/parser-bench-run.nu --filter parser_lex_*第二步用 parser-bench-throughput.nu 统计吞吐拿到日志路径后执行把日志文件替换为第一步实际打印的路径./target/debug/nu scripts/parser-bench-throughput.nu 日志文件 # 例如 ./target/debug/nu scripts/parser-bench-throughput.nu target/parser-bench/benchmarks-parser__-20260519-125213.log脚本参数见 parser-bench-throughput.nu 的main签名log_file位置参数必填第一步生成的日志文件--name-prefix基准名前缀过滤默认parser_--time-unit吞吐的时间基默认micro可选sec、milli、micro、nano对应表头单位即chars/unit、bytes/unit。脚本内部流程逐行按正则提取形如parser_... 数值时间单位 ...的 tango 输出行把时间统一换算成秒再从基准名尾部提取字节/字符数算出chars_per_unit与bytes_per_unit按基准名去重排序后输出。结果验证脚本正常时会依次打印三部分内容Throughput summary (derived from benchmark timing, unit: unit):—— 完整表格列为benchmark、chars、bytes、seconds、time_unit、chars_per_unit、bytes_per_unitHeadline metric candidates (chars/unit):—— 按chars_per_unit降序的前 5 名只含benchmark和chars_per_unit两列Benchmark logfile: 日志路径以及日志原文回显。表格中每个parser_*项都有非空吞吐数值即说明日志解析成功。注意这里的数值是你本机本次运行的测量结果脚本注释也标明其适用于 Nushell 0.112.2 版本的输出格式不要把它当成固定的预期基准值。报错判断脚本在三种情况下会显式报错均来自 parser-bench-throughput.nu 源码报错触发条件处理Missing required argument: log_file没传日志文件位置参数补上第一步打印的日志路径unsupported time unit: unit--time-unit不在sec/milli/micro/nano内换成支持的值no parser benchmark rows were parsed日志里没有匹配parser_*且带时间单位的行确认日志确实来自parser_*过滤的 tango solo 输出若日志本身正常但仍解析不到检查所用 nu 版本与日志格式是否匹配另外benchmarks.rs 中large数据集的说明指出如果crates/nu-std/std目录不可读基准会直接 panic 以保证失败可见运行cargo bench阶段若崩溃可先排查这一点。可选分支对比两个修订版本如果你的目标不是单看吞吐而是对比当前分支与某个修订版本的差异benches/README.md 给出的是另一条路径use toolkit.nu # 当前分支对比 main toolkit benchmark-compare # 或对比指定的两个 git 修订 toolkit benchmark-compare target reference该命令定义在 benchmark.nu会切换分支、分别cargo export出两套产物并用 tangocompare输出到./tango目录因此前提文档里写明了需要安装cargo-export且会执行git checkout切换分支。它和本文主路径是两种用途——前者做 A/B 对比后者统计单次运行的吞吐不要把两者放在同一次操作链里执行。边界小结吞吐脚本只对 tango solo 输出中符合parser_name [数值 单位 ...]形式的行有效其他基准项glob、table、record 等虽然也在同一个 bench target 里但默认--name-prefix parser_已将其排除seconds、chars、bytes列是脚本从日志推导出来的原始量chars_per_unit/bytes_per_unit是按所选时间基换算的吞吐换--time-unit时数值会按倍数变化含义不变所有路径target/parser-bench/、日志文件都在仓库目录内产生运行后如不需要可自行管理这些产物脚本本身不会删除它们。【免费下载链接】nushellA new type of shell项目地址: https://gitcode.com/GitHub_Trending/nu/nushell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

小波变换图像处理:基函数选择与多任务实践指南 2026/9/12 18:12:56

小波变换图像处理:基函数选择与多任务实践指南

简介:本资源是一套基于MATLAB R2018b开发的小波变换图像处理实践程序,面向数字图像处理初学者与进阶学习者,聚焦多尺度分析在图像融合、降噪、压缩与信息隐藏四大典型任务中的工程实现。程序采用GUIDE构建GUI界面,配套23张PNG测试…

阅读更多 →
2026年AIGC降重工具评测与实战指南 2026/9/12 18:12:56

2026年AIGC降重工具评测与实战指南

1. 2026年AIGC降重工具全景解析在学术写作和内容创作领域,AIGC(人工智能生成内容)检测已经成为继传统查重之后的第二道质量关卡。最近帮几位研究生处理毕业论文时发现,即使原创度达标的论文,也可能因为AI特征明显被系统…

阅读更多 →
DeepSeek大模型API:低成本高兼容性的技术解析与应用 2026/9/12 18:12:56

DeepSeek大模型API:低成本高兼容性的技术解析与应用

1. DeepSeek现象观察:大模型API的"水电煤"化趋势 最近半年,从开发者论坛到科技媒体,DeepSeek这个名词的出现频率呈现爆发式增长。在VSCode插件市场,DeepSeek相关扩展下载量已突破百万;技术社区里关于"c…

阅读更多 →
AI智能问卷设计:技术架构与效率提升解析 2026/9/12 18:12:56

AI智能问卷设计:技术架构与效率提升解析

1. 传统问卷设计的痛点与瓶颈 传统问卷设计流程通常包含需求分析、问题设计、格式编排、测试调整和分发回收五个阶段。以某市场调研公司2023年的内部统计为例,从问卷立项到最终回收数据平均需要21个工作日,其中仅问题设计环节就占用了37%的时间成本。这种…

阅读更多 →
Day 2项目实践:技术日志与持续开发指南 2026/9/12 18:12:56

Day 2项目实践:技术日志与持续开发指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于SpringBoot的纯净水配送管理系统(源代码+文档+PPT+调试+讲解) 2026/9/12 18:09:55

基于SpringBoot的纯净水配送管理系统(源代码+文档+PPT+调试+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞