%macro timer
( mode = ON
, description = Duration
, reset = Y
) ;
%global timermacro_starttime ;
%if %upcase( &mode ) = OFF %then %do ;
%if %symexist( timermacro_starttime ) %then do ;
%put &description %sysfunc( putn( %sysevalf( %sysfunc( datetime() )
- &timermacro_starttime ), 12.3 ) ) seconds @ %sysfunc( time(), time8. ) ;
%if %upcase( &reset ) = Y %then %symdel timermacro_starttime ;
%end ;
%else %let timermacro_starttime = %sysfunc( datetime() ) ;
%mend ;
Example:
%timer()
data _null_ ;
run ;
%timer( mode = off )
Duration 0.153 seconds
Friday, June 1, 2012
Timer Macro
The TIMER macro writes the elapsed time between calling this macro with MODE=ON and MODE=OFF. This comes in very handy when you want to find the slow parts of your code.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment