On Jan 10, 2006, at 4:23 PM, chuck5566 wrote:
What's noticeably missing from all those new speed claims is one
word: Rosetta. That translation layer that will have to run to be
able use all those current great OS X apps, developed for the
PowerPC CPU. I'll be interested in some 3rd-part benchmarks. I'll
REALLY be interested in somebody hacking OS X to run on AMD CPUs.
Well, I'm disappointed, anyway. I wrote a little PLT Scheme program
that sorts lists of 1000, 2000, etc. elements and ran it both at home
and at work. My Powerbook is considerably slower than my workstation
at work. :-(
Here's the program. It would be interesting to try it on one of the
new Macs.
;;This function just generates a (pseudo-random) list
;;for test purposes.
(define random-list
(lambda (size range)
(if (> size 0)
(cons (random range)
(random-list (- size 1) range))
'())))
;;The standard quicksort algorithm
(define quick
(lambda (l)
(if (null? l) '()
(let ((p (car l))
(l (cdr l)))
(append
(quick (filter (lambda (x) (< x p)) l))
(list p)
(quick (filter (lambda (x) (not (< x p))) l)))))))
;;try-it
(define try-it
(lambda (n)
(begin
(define output '())
(time (set! output (quick (random-list n 1000)))))))
;;test-run
;;Note that this benchmark times the process of both building the
list to sort
;;(using a pseudo-random number generator) and sorting it
(define test-run
(lambda (n)
(let loop
((i 1))
(begin
(display "i = ")
(display i)
(display " ( ")
(display (* i 1000))
(display " items)")
(newline)
(try-it (* i 1000)))
(if (< i n)
(loop (+ i 1))))))
Here's a sample run without compiling the program (i.e., running it
at the programmer prompt):
> (test-run 20)
i = 1 ( 1000 items)
cpu time: 91 real time: 98 gc time: 0
i = 2 ( 2000 items)
cpu time: 175 real time: 184 gc time: 0
i = 3 ( 3000 items)
cpu time: 304 real time: 327 gc time: 0
i = 4 ( 4000 items)
cpu time: 445 real time: 471 gc time: 0
i = 5 ( 5000 items)
cpu time: 575 real time: 603 gc time: 0
i = 6 ( 6000 items)
cpu time: 836 real time: 873 gc time: 0
i = 7 ( 7000 items)
cpu time: 1020 real time: 1067 gc time: 0
i = 8 ( 8000 items)
cpu time: 1348 real time: 1405 gc time: 0
i = 9 ( 9000 items)
cpu time: 2105 real time: 2217 gc time: 405
i = 10 ( 10000 items)
cpu time: 2131 real time: 2243 gc time: 0
i = 11 ( 11000 items)
cpu time: 2218 real time: 2310 gc time: 0
i = 12 ( 12000 items)
cpu time: 2912 real time: 3036 gc time: 391
i = 13 ( 13000 items)
cpu time: 3775 real time: 3951 gc time: 0
i = 14 ( 14000 items)
cpu time: 3745 real time: 3939 gc time: 0
i = 15 ( 15000 items)
cpu time: 4297 real time: 4514 gc time: 0
i = 16 ( 16000 items)
cpu time: 4890 real time: 5115 gc time: 0
i = 17 ( 17000 items)
cpu time: 6180 real time: 6462 gc time: 401
i = 18 ( 18000 items)
cpu time: 8342 real time: 8742 gc time: 0
i = 19 ( 19000 items)
cpu time: 8848 real time: 9289 gc time: 0
i = 20 ( 20000 items)
cpu time: 11092 real time: 11813 gc time: 0
> (test-run 20)
i = 1 ( 1000 items)
cpu time: 91 real time: 97 gc time: 0
i = 2 ( 2000 items)
cpu time: 189 real time: 198 gc time: 0
i = 3 ( 3000 items)
cpu time: 301 real time: 319 gc time: 0
i = 4 ( 4000 items)
cpu time: 439 real time: 459 gc time: 0
i = 5 ( 5000 items)
cpu time: 580 real time: 607 gc time: 0
i = 6 ( 6000 items)
cpu time: 824 real time: 860 gc time: 0
i = 7 ( 7000 items)
cpu time: 996 real time: 1042 gc time: 0
i = 8 ( 8000 items)
cpu time: 1286 real time: 1343 gc time: 0
i = 9 ( 9000 items)
cpu time: 1558 real time: 1626 gc time: 0
i = 10 ( 10000 items)
cpu time: 1875 real time: 1956 gc time: 0
i = 11 ( 11000 items)
cpu time: 2161 real time: 2251 gc time: 0
i = 12 ( 12000 items)
cpu time: 2900 real time: 3019 gc time: 410
i = 13 ( 13000 items)
cpu time: 3530 real time: 3698 gc time: 0
i = 14 ( 14000 items)
cpu time: 3450 real time: 3602 gc time: 0
i = 15 ( 15000 items)
cpu time: 4829 real time: 5041 gc time: 0
i = 16 ( 16000 items)
cpu time: 4766 real time: 4981 gc time: 0
i = 17 ( 17000 items)
cpu time: 5334 real time: 5547 gc time: 412
i = 18 ( 18000 items)
cpu time: 6966 real time: 7287 gc time: 0
i = 19 ( 19000 items)
cpu time: 8333 real time: 8742 gc time: 0
i = 20 ( 20000 items)
cpu time: 10852 real time: 11366 gc time: 0
>
and here's a sample run after compiling
i = 1 ( 1000 items)
cpu time: 53 real time: 58 gc time: 0
i = 2 ( 2000 items)
cpu time: 108 real time: 116 gc time: 0
i = 3 ( 3000 items)
cpu time: 179 real time: 190 gc time: 0
i = 4 ( 4000 items)
cpu time: 353 real time: 368 gc time: 105
i = 5 ( 5000 items)
cpu time: 303 real time: 319 gc time: 0
i = 6 ( 6000 items)
cpu time: 381 real time: 398 gc time: 0
i = 7 ( 7000 items)
cpu time: 584 real time: 611 gc time: 102
i = 8 ( 8000 items)
cpu time: 572 real time: 647 gc time: 0
i = 9 ( 9000 items)
cpu time: 768 real time: 806 gc time: 103
i = 10 ( 10000 items)
cpu time: 818 real time: 852 gc time: 104
i = 11 ( 11000 items)
cpu time: 798 real time: 834 gc time: 0
i = 12 ( 12000 items)
cpu time: 992 real time: 1034 gc time: 101
i = 13 ( 13000 items)
cpu time: 1119 real time: 1171 gc time: 104
i = 14 ( 14000 items)
cpu time: 1201 real time: 1255 gc time: 104
i = 15 ( 15000 items)
cpu time: 1343 real time: 1403 gc time: 105
i = 16 ( 16000 items)
cpu time: 1508 real time: 1570 gc time: 105
i = 17 ( 17000 items)
cpu time: 1648 real time: 1717 gc time: 207
i = 18 ( 18000 items)
cpu time: 1610 real time: 1681 gc time: 0
i = 19 ( 19000 items)
cpu time: 1773 real time: 1849 gc time: 106
i = 20 ( 20000 items)
cpu time: 2014 real time: 2143 gc time: 112
Quite a difference!
===
Gregory Woodhouse
[EMAIL PROTECTED]
"Design quality doesn't ensure success, but design failure can ensure
failure."
--Kent Beck
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Hardhats-members mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hardhats-members