This method is more precise than the previous one as you use the events to
automatically count the clock ticks in between the start of the transfers to the
time the interface is idle. So, you do not have to precisely position the
start_profiling and the
end_profiling instruction. You only have to set them before the graph
run and input data transfer for the start, and after the graph ends for the end.
Again, knowing the amount of data that has been transferred allows you to more easily compute the average throughput of the system.