1

我正在开发一个rtmpdump在下载过程中处理流式二进制数据(使用输出到 STDOUT)的应用程序。出于调试目的,我想用本地文件慢速打印到 STDOUT 来替换这种流下载,所以我将处理我知道的数据。

Linux 命令 cat file.bin是简单的解决方案,但与流式下载相比它太快了。我正在使用真实流处理的应用程序,与我使用时的批量相比,批量下载和处理数据要小得多cat

应该使用什么 Linux 命令来使打印速度变慢?我怎样才能“管理”这种打印的速度?

4

2 回答 2

3

一个小的 Perl 脚本:

use warnings;
use strict;

open my $f, "<", "file.bin" or die($!);
binmode($f);
my $buf;
while(my $len = read($f, $buf, 100 * rand() + 10))
{
    print $buf;
    sleep rand() * 2;
}
close $f; 
于 2013-06-23T02:34:50.877 回答
1

一个做相同(和更好)的单线:

perl -ne '$|=1; for (split //) { print; select(undef,undef,undef, 0.07) }' file.txt

函数中的第四个参数select()

0.10 - 相当慢;0.07 - 还可以;0.03 - 相当快

根据你的口味改变它。

于 2021-06-11T12:25:21.783 回答