Benchmark overload resolution at compile time.
Annotate for file lisp-benchmark.lisp
2009-05-25 tobias 1 (in-package :cl-smoke.benchmark)
14:59:32 ' 2
' 3 (let ((array (make-instance 'qt:byte-array :args '("foobar"))))
' 4 (defun inline-call (iterations)
' 5 (declare (fixnum iterations)
' 6 (optimize (speed 3)))
' 7 (let ((char #\Null))
' 8 (declare (character char))
' 9 (dotimes (i iterations char)
' 10 (setf char (cxx:aref array 0))))))
' 11
' 12 (let ((object (make-instance 'qt:object)))
2009-07-08 tobias 13 ; (declare (qt:object object))
2009-05-25 tobias 14 (defun simple-call (iterations)
14:59:32 ' 15 (declare (fixnum iterations)
' 16 (optimize (speed 3)))
' 17 (dotimes (i iterations)
' 18 (cxx:kill-timer object 0))))
' 19
2009-07-08 tobias 20 #+sbcl
15:34:16 ' 21 (smoke::define-resolve-at-compile-time cxx:kill-timer)
' 22
' 23 (let ((object (make-instance 'qt:object)))
' 24 (declare (qt:object object))
' 25 (defun simple-call-compile-time (iterations)
' 26 (declare (fixnum iterations)
' 27 (optimize (speed 3)))
' 28 (dotimes (i iterations)
' 29 (cxx:kill-timer object 0))))
' 30
2009-05-25 tobias 31 (defclass my-object (qt:object)
14:59:32 ' 32 ()
' 33 (:metaclass cxx:class))
' 34
' 35
2009-06-19 tobias 36 (defun signal-slot (iterations)
2009-05-25 tobias 37 (declare (fixnum iterations)
14:59:32 ' 38 (optimize (speed 3)))
2010-01-10 tobias 39 (let ((my-signal (make-instance 'cl-smoke.qt-impl::qsignal :argument-types nil)))
2009-06-19 tobias 40 (declare (function my-signal))
15:31:27 ' 41 (qt:connect my-signal
' 42 #'(lambda ()))
2009-05-25 tobias 43 (dotimes (i iterations)
2009-06-19 tobias 44 (funcall my-signal))))
15:31:27 ' 45
2009-05-25 tobias 46
14:59:32 ' 47 (defun construct (iterations)
' 48 (declare (fixnum iterations)
' 49 (optimize (speed 3)))
' 50 (dotimes (i iterations)
' 51 (make-instance 'qt:object)))