34 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
USING: help.markup help.syntax memory system ;
 | 
						|
IN: tools.time
 | 
						|
 | 
						|
ARTICLE: "timing" "Timing code"
 | 
						|
"You can time the execution of a quotation in the listener:"
 | 
						|
{ $subsection time }
 | 
						|
"A lower-level word puts timings on the stack, intead of printing:"
 | 
						|
{ $subsection benchmark }
 | 
						|
"You can also read the system clock and total garbage collection time directly:"
 | 
						|
{ $subsection millis } 
 | 
						|
{ $subsection gc-time }
 | 
						|
{ $see-also "profiling" } ;
 | 
						|
 | 
						|
ABOUT: "timing"
 | 
						|
 | 
						|
HELP: benchmark
 | 
						|
{ $values { "quot" "a quotation" } { "gctime" "an integer denoting milliseconds" } { "runtime" "an integer denoting milliseconds" } }
 | 
						|
{ $description "Runs a quotation, measuring the total wall clock time and the total time spent in the garbage collector." }
 | 
						|
{ $notes "A nicer word for interactive use is " { $link time } "." } ;
 | 
						|
 | 
						|
HELP: time
 | 
						|
{ $values { "quot" "a quotation" } }
 | 
						|
{ $description "Runs a quotation and then prints the total run time and time spent in the garbage collector." }
 | 
						|
{ $examples
 | 
						|
    "This word can be used to compare performance of the non-optimizing and optimizing compilers."
 | 
						|
    $nl
 | 
						|
    "First, we time a quotation directly; quotations are compiled by the non-optimizing quotation compiler:"
 | 
						|
    { $unchecked-example "[ 1000000 0 [ + ] reduce drop ] time" "1116 ms run / 6 ms GC time" }
 | 
						|
    "Now we define a word and compile it with the optimizing word compiler. This results is faster execution:"
 | 
						|
    { $unchecked-example ": foo 1000000 0 [ + ] reduce ;" "\\ foo compile" "[ foo drop ] time" "202 ms run / 13 ms GC time" }
 | 
						|
} ;
 | 
						|
 | 
						|
{ gc-time benchmark millis time } related-words
 |