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;