values bench added by megane on Thu Aug 9 12:20:58 2012

(define (foo a)
  (values (+ 1 a) a))

(define (bar a)
  (cons (+ 1 a) a))

(define nloops 1e7)

(time
 (let lp [(i 0)]
   (if (< i nloops)
       (lp (car (bar i)))
       (print i))))

(time
 (let lp [(i 0)]
   (if (< i nloops)
       (receive (a b) (foo i)
	 (lp a))
       (print i))))

;; $ csc -O3 simpl.scm && ./simpl
;; 10000000
;; 0.588s CPU time, 0/1948 GCs (major/minor)
;; 10000000
;; 5.768s CPU time, 1.772s GC time (major), 2816/3330517 GCs (major/minor)