Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: help with function utilising "extended life-time" words ..

From: maximo:meteorstudios at: 1-Oct-2003 14:02

> -----Original Message----- > From: Petr Krenzelok [] > > start: now/time/precise .... do something ... print > now/time/precise - > start start: now/time/precise
try this: it expects a block of code and even returns the value from it (and returns none for no value functions like print)... but it can easily be tweaked to work differently? ;----------------------------------------------------- rebol [] how-long?: function [codeblk [block! none!] /reset /quiet /log log-message log-string ][rval timestart timeend timelen][ if ((reset = true) OR (not value? 'how-long-accumulator)) [ how-long-accumulator: 0:00 ] if codeblk [ timestart: now/time/precise if (error? try [rval: do codeblk ]) [rval: none] timeend: now/time/precise timelen: (timeend - timestart) how-long-accumulator: how-long-accumulator + timelen if not quiet [ print ["performed in: " timelen ] print ["accumulated: " how-long-accumulator ] ] if log [ append log-string log-message append log-string rejoin [" > time: " timelen " accumulated: " how-long-accumulator "^/"] ] ] return rval ] log-string: copy "" how-long?/log [loop 1000000 [34.0 / 2.556] ] "test-block-A() " log-string how-long?/log [loop 1000000 [34.0 / 2.556] ] "test-block-B() " log-string how-long?/log [loop 1000000 [34.0 / 2.556] ] "test-block-C() " log-string how-long?/log [loop 1000000 [34.0 / 2.556] ] "test-block-D() " log-string print log-string