Benchmark overload resolution at compile time. --> to head
Sun Jan 10 11:16:40 CET 2010 Tobias Rautenkranz <tobias@rautenkranz.ch>
* ASDF & modular smoke.
hunk ./benchmark.lisp 30
- :version ,(lisp-implementation-version)
- :arch ,(machine-type)
- :os ,(software-type)
- :os-version ,(software-version)
- :cl-smoke-version ,(mb.sysdef::version-string (mb.sysdef:version-of (mb.sysdef:find-system :smoke)))))
+ :version ,(lisp-implementation-version)
+ :arch ,(machine-type)
+ :os ,(software-type)
+ :os-version ,(software-version)
+ :cl-smoke-version ,(format nil "~{~A~^.~}"
+ (asdf:component-version (asdf:find-system :cl-smoke.smoke)))))
hunk ./benchmark.lisp 72
- #'cl-smoke-benchmark-simple-call 10000 3000)
+ #'cl-smoke-benchmark-simple-call 10000 1000)
hunk ./benchmark.sh 4
-sbcl --eval "(mb:load :cl-smoke.benchmark)" --eval "(cl-smoke.benchmark:run)" --eval "(quit)" || exit 1
+sbcl --eval "(require :cl-smoke.benchmark)" \
+ --eval "(cl-smoke.benchmark:run)" \
+ --eval "(quit)" || exit 1
hunk ./cl-smoke.benchmark.mbd 1
-;;;; -*- Mode: lisp; indent-tabs-mode: nil -*-
-
-
-;;; SYSDEF.CMAKE
-(defpackage :sysdef.cmake
- (:use :cl :sysdef)
- (:export :cmake-file :cmake-library))
-
-(in-package :sysdef.cmake)
-(defclass sysdef.cmake:cmake-file (source-file)
- ()
- (:default-initargs :type "txt"))
-
-(defclass sysdef.cmake:cmake-library (component)
- ())
-;;; end SYSDEF.CMAKE
-
-(in-package :sysdef-user)
-(eval-when (:compile-toplevel :load-toplevel :execute)
- (use-package :sysdef.cmake))
-
-(define-system :cl-smoke.benchmark ()
- (:version 0 0 1)
- (:documentation "Benchmark cl-smoke agains C++.")
- (:serial t)
- (:components
- "package"
- ("CMakeLists" sysdef.cmake:cmake-file)
- ("libcl-smoke-benchmark" sysdef.cmake:cmake-library)
- "cxx"
- "lisp-benchmark"
- "benchmark")
- (:needs :qt :cffi :sysdef.cmake :trivial-garbage))
rmfile ./cl-smoke.benchmark.mbd
hunk ./cxx.lisp 3
-(use-foreign-library libcl-smoke-benchmark)
+(define-foreign-library libcl-smoke-benchmark
+ (t (:default "libcl-smoke-benchmark")))
+
+(let ((*foreign-library-directories*
+ (cons (asdf:component-pathname (asdf:find-system :cl-smoke.benchmark))
+ *foreign-library-directories*)))
+ (use-foreign-library libcl-smoke-benchmark))
+
hunk ./lisp-benchmark.lisp 39
- (let ((my-signal (make-instance 'cl-smoke.qt-impl::qsignal :argument-types nil)))
+ (let ((my-signal (make-instance 'cl-smoke.qt.core::qsignal :argument-types nil)))
hunk ./plot.R 39
-cxx_simple_call <- read.table("cxx-simple-call-compile-time.dat", header=TRUE)
-simple_call <- read.table("simple-call-compile-time.dat", header=TRUE)
-boxplot_benchmark(simple_call, cxx_simple_call)
-title("Simple Call with overload resolution at compile time.")
-
Wed Jul 8 17:34:16 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Benchmark overload resolution at compile time.
hunk ./benchmark.lisp 42
- (sb-ext:gc :full t)
+ (tg:gc :full t)
hunk ./benchmark.lisp 65
- #'cl-smoke-benchmark-signal-slot 5000 1000)
+ #'cl-smoke-benchmark-signal-slot 1000 1000)
hunk ./benchmark.lisp 67
- #'cl-smoke-benchmark-byte-array-size 50000 3000)
+ #'cl-smoke-benchmark-byte-array-size 10000 3000)
hunk ./benchmark.lisp 69
- #'cl-smoke-benchmark-simple-call 50000 3000)
+ #'cl-smoke-benchmark-simple-call 10000 3000)
+ (run-compare "simple-call-compile-time" #'simple-call-compile-time
+ #'cl-smoke-benchmark-simple-call 10000 3000)
hunk ./cl-smoke.benchmark.mbd 33
- (:needs :qt :cffi :sysdef.cmake))
+ (:needs :qt :cffi :sysdef.cmake :trivial-garbage))
hunk ./lisp-benchmark.lisp 13
- (declare (qt:object object))
+; (declare (qt:object object))
hunk ./lisp-benchmark.lisp 20
+#+sbcl
+(smoke::define-resolve-at-compile-time cxx:kill-timer)
+
+(let ((object (make-instance 'qt:object)))
+ (declare (qt:object object))
+ (defun simple-call-compile-time (iterations)
+ (declare (fixnum iterations)
+ (optimize (speed 3)))
+ (dotimes (i iterations)
+ (cxx:kill-timer object 0))))
+
hunk ./plot.R 39
+cxx_simple_call <- read.table("cxx-simple-call-compile-time.dat", header=TRUE)
+simple_call <- read.table("simple-call-compile-time.dat", header=TRUE)
+boxplot_benchmark(simple_call, cxx_simple_call)
+title("Simple Call with overload resolution at compile time.")
+