Here's the code I've been using to investigate perfomance of #24. It adds names to the timings in timing.log and separates out the time for I/O and time taken to rearrange the particles after reading them. The timer object is changed to a global variable so that it can be called from the read routines instead of just the top level program.
This will mean that the columns in timing.log can vary depending on the input snapshot and halo format, because different read routines can contain different timer calls.
Here's the code I've been using to investigate perfomance of #24. It adds names to the timings in timing.log and separates out the time for I/O and time taken to rearrange the particles after reading them. The timer object is changed to a global variable so that it can be called from the read routines instead of just the top level program.