%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