E:\>dir 30GB.dat
28/02/2015 08:21 34,560,000,000 30GB.dat
[ 0:08:11.82] E:\>wc -c 30GB.dat
34560000000 30GB.dat
[ 0:11:23.17] E:\>perl -E"say 34560000000 / 192 / 1024**2;"
171.661376953125
####
E:\md junk
E:\cd Junk
E:\junk>perl -le"open O, '>00';printf O qq[%01023d\n],$_ for 1..1024**2; close O; system qq[copy 00 $_] for('01'..'50')"
13/03/2015 00:23 1,074,790,400 01
13/03/2015 00:23 1,074,790,400 02
13/03/2015 00:23 1,074,790,400 03
13/03/2015 00:23 1,074,790,400 04
13/03/2015 00:23 1,074,790,400 05
13/03/2015 00:23 1,074,790,400 06
13/03/2015 00:23 1,074,790,400 07
13/03/2015 00:23 1,074,790,400 08
13/03/2015 00:23 1,074,790,400 09
13/03/2015 00:23 1,074,790,400 10
13/03/2015 00:23 1,074,790,400 11
13/03/2015 00:23 1,074,790,400 12
13/03/2015 00:23 1,074,790,400 13
13/03/2015 00:23 1,074,790,400 14
13/03/2015 00:23 1,074,790,400 15
13/03/2015 00:23 1,074,790,400 16
13/03/2015 00:23 1,074,790,400 17
13/03/2015 00:23 1,074,790,400 18
13/03/2015 00:23 1,074,790,400 19
13/03/2015 00:23 1,074,790,400 20
13/03/2015 00:23 1,074,790,400 21
13/03/2015 00:23 1,074,790,400 22
13/03/2015 00:23 1,074,790,400 23
13/03/2015 00:23 1,074,790,400 24
13/03/2015 00:23 1,074,790,400 25
13/03/2015 00:23 1,074,790,400 26
13/03/2015 00:23 1,074,790,400 27
13/03/2015 00:23 1,074,790,400 28
13/03/2015 00:23 1,074,790,400 29
13/03/2015 00:23 1,074,790,400 30
13/03/2015 00:23 1,074,790,400 31
13/03/2015 00:23 1,074,790,400 32
13/03/2015 00:23 1,074,790,400 33
13/03/2015 00:23 1,074,790,400 34
13/03/2015 00:23 1,074,790,400 35
13/03/2015 00:23 1,074,790,400 36
13/03/2015 00:23 1,074,790,400 37
13/03/2015 00:23 1,074,790,400 38
13/03/2015 00:23 1,074,790,400 39
13/03/2015 00:23 1,074,790,400 40
13/03/2015 00:23 1,074,790,400 41
13/03/2015 00:23 1,074,790,400 42
13/03/2015 00:23 1,074,790,400 43
13/03/2015 00:23 1,074,790,400 44
13/03/2015 00:23 1,074,790,400 45
13/03/2015 00:23 1,074,790,400 46
13/03/2015 00:23 1,074,790,400 47
13/03/2015 00:23 1,074,790,400 48
13/03/2015 00:23 1,074,790,400 49
13/03/2015 00:23 1,074,790,400 50
50 File(s) 53,739,520,000 bytes
2 Dir(s) 1,490,904,588,288 bytes free
####
#! perl -slw
use strict;
use Time::HiRes qw[ time ];
use constant _10MB => 10*1024**2;
$|++;
my @fhs; open $fhs[ $_ ], '<:raw', sprintf"%02d", $_ for 1 .. 50; shift @fhs;
my $start = time;
my @bufs; read( $fhs[ $_ ], $bufs[ $_ ], _10MB ) for 0 .. 49;
OUTER: while( @fhs ) {
printf "\r%d\t", scalar( @fhs );
my $r = int rand @fhs;
unless( length( $bufs[ $r ] ) ) {
read( $fhs[ $r ], $bufs[ $r ], _10MB ) or do{
close $fhs[ $r ];
splice @fhs, $r, 1;
splice @bufs, $r, 1;
next OUTER;
};
}
my $nextRec = substr( $bufs[ $r ], -16, 16, '' );
}
my $end = time;
printf "Took %d seconds.\n", $end - $start;