使用 -11!(-2;`:tplog) 在 tplog 行计数期间报告进度

report progress during tplog row count using -11!(-2;`:tplog)

我正在使用 -11!(-2;`:tplog) 内部函数计算 1TB tplog 中的行数,这需要很长时间。

有没有办法跟踪此操作的进度(最好是百分比)?

不,我认为 -2 选项不可能做到这一点。可以通过定义自定义 .z.ps 来使用 -11!,但在计算块数时似乎不会调用 .z.ps

你最好的选择可能是使用 linux 系统命令或使用 hcount 检查磁盘上的原始文件大小,然后根据之前在你的机器上测试的一些估计,你可以创建逻辑来仅根据文件大小得出一个大概的时间估计值(可能使用线性插值)。

当然 - 一旦您从 -2 选项中获得了块计数,那么您可以轻松地创建实际重放的进度估计,而不是块计数部分本身

从根本上说,条目是可变长度的,文件中没有内置跟踪功能,因此没有确切的答案。

您或许可以这样做:

重播一个短片段(比如 1,000 个条目)和一个自定义处理程序:

.z.ps:{estimate+:-22!x}
-11!(1000;`:tplog)
-1"estimate of entry size: ", string estimate%:1000
-1"estimate of number of entries: ", string floor n:hcount[`:tplog]%estimate
\x .z.ps

然后使用标准更新处理程序重复整个文件。