|Think about Loose Coupling|
BTW, there is something odd with your numbers. The Perl timestamps only give a delta of slightly less than six seconds (~83 MB/s average => reading 228 MB/s, writing 152 MB/s), but your console says almost 22 seconds (which would put the performance at around 23 MB/s)
The difference between the timestamps and the prompt timing is because the prompt had been sat there for a few seconds before (and during) my typing the command.
Here are two sets of prompts, the first shows the prompt had been sat idle for a while before I entered the command. The second run, initiated using command retrieval whilst the first run was in progress executes immediately the first is complete and the delta then reflects the timestamps output by the program:
And as far as IO throughput, here's a snapshot of the process performance dialog from Process Explorer after the process finished.
Each vertical gridline represents 3 seconds.
The cyan is the read, and the throughput is shown in the small popup. 120.2MB/0.5 seconds. 500/120.2/2 = 2.0798668885191347753743760399334 seconds to read,
The purple is the write and the throughput is shown on the gauge at the left. 90.4MB/0.5 seconds. 500/90.4/2 = 2.7654867256637168141592920353982 seconds to write.
Slightly optimistic figures, but the total throughput is the area, and if you look closely, you'll see the top of the graphs aren't straight and the leading and trailing edges aren't vertical.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.