The TIC and TOC routines work together to allow you to check the running time of your IDL programs. The TIC routine stores the initial system time. TOC records the final system time, then calculates and displays the total elapsed time (final time - system time).
You may call the TIC routine as either a procedure or a function. When you call TIC as a procedure, the TIC and TOC routines print out the elapsed time between the calls. When you call TIC as a function, the TOC routine measures the elapsed time for that specific call. This allows you to nest the TIC and TOC calls to measure the time within subroutines and loops.
Following is a simple example of using TIC and TOC to measure the length of time it takes IDL to create a plot. Copy and paste the following to the IDL command line:
sw = SIN(2.0*FINDGEN(200)*!PI/25.0) * EXP(-0.02*FINDGEN(200))
p1 = PLOT(sw, '-r')
% Time elapsed: 0.94500017 seconds.
Now, call TIC as a function, to measure the time for nested subroutines. Be sure to copy and paste all of the lines at the same time.
for i=0, 3 do begin & $
clock = TIC('FFT' + STRTRIM(i, 2)) & $
r = FFT(RANDOMU(seed, 1729, 1729)) & $
TOC, clock & $
% Time elapsed FFT0: 1.0139999 seconds.
% Time elapsed FFT1: 0.98699999 seconds.
% Time elapsed FFT2: 1.0000000 seconds.
% Time elapsed FFT3: 0.99300003 seconds.
% Time elapsed: 4.9909999 seconds.
TIC [, /PROFILER]
ClockName = TIC( [Name] [, /PROFILER] )
If TIC is called as a function, the return value (ClockName) is an identifier associated with that particular call to TIC. This identifier can then be passed into the TOC routine to print out the elapsed time for that particular "clock."
Set this optional argument to a string giving a name to be associated with this particular call to TIC. This name will then be printed out when the TOC routine is called using the ClockName. If Name is not specified then IDL uses a null string in its place.
Set this keyword to turn on the PROFILER for all user and system routines. Before turning on PROFILER, IDL resets any previous profiling results. The PROFILER will automatically be turned off when you call the TOC routine with no arguments. See TOC for an example of using the PROFILER.
Note: Because the PROFILER introduces an overhead to all IDL function calls, the elapsed times will be slightly longer when PROFILER is on. You should also make sure to call the TOC routine with no arguments to disable profiling.
Tip: If you are using the IDL Workbench, IDL will automatically refresh the Profiler view when TOC is called.