I've just started using the "time" function to check the timings of
some functions in my program.   I'm testing the timings of two
functions, each of these functions takes a list of lists and
transforms it into another list of lists.  The size of each list of
lists is in the order of  about 1000 x 1000.

Each time I used it in DRacket I got very different results.  So I did
this test.
I put three calls to the two functions right after each other in the
program as follows.

. . .
(define page-as-binary-matrix  (time (image-file->binary-matrix
path-to-image-of-page)))
(define black-pixel-matrix (time (create-matrix-of-black-pixel-ranges
page-as-binary-matrix)))

(define page-as-binary-matrix1  (time (image-file->binary-matrix
path-to-image-of-page)))
(define black-pixel-matrix1 (time (create-matrix-of-black-pixel-ranges
page-as-binary-matrix)))

(define page-as-binary-matrix2  (time (image-file->binary-matrix
path-to-image-of-page)))
(define black-pixel-matrix2 (time (create-matrix-of-black-pixel-ranges
page-as-binary-matrix)))


and got these results

cpu time: 7176 real time: 6620 gc time: 4537
cpu time: 2262 real time: 2289 gc time: 437

cpu time: 5600 real time: 5257 gc time: 2949
cpu time: 3728 real time: 3516 gc time: 1748

cpu time: 4040 real time: 3673 gc time: 1388
cpu time: 2418 real time: 2311 gc time: 422

Its in DrRacket on a dual core pentium under windows.

Why the widely divergent timings and why is CPU time in general more
than real-time?

Thanks,
Harry
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to