Raymond Toy pushed to branch rtoy-issue-87-add-cl-bench at cmucl / cmucl
Commits: f15977bd by Raymond Toy at 2020-09-04T11:03:27-07:00 Store the results in our directory instead of /var/tmp
Adjust where the reports are stored when running the benchmarks and where the reports are read from.
Instead of /var/tmp, use cl-bench/results. This will make it easier to find these files in CI.
- - - - -
2 changed files:
- benchmarks/cl-bench/report.lisp - benchmarks/cl-bench/support.lisp
Changes:
===================================== benchmarks/cl-bench/report.lisp ===================================== @@ -14,18 +14,28 @@
(in-package :cl-user)
+(defvar *benchmark-file-directory* + (merge-pathnames (make-pathname :directory '(:relative "results")) + (make-pathname :directory (pathname-directory *load-truename*))) + "Directory where the benchmark report file is stored") + (defconstant +implementation+ (concatenate 'string (lisp-implementation-type) " " (lisp-implementation-version)))
(defun bench-analysis () - (let (data implementations benchmarks) - (dolist (f (directory "/var/tmp/CL-benchmark*.*")) + (let ((benchmark-path (concatenate 'string + (namestring *benchmark-file-directory*) + "CL-benchmark*.*")) + data implementations benchmarks) + (dolist (f (directory benchmark-path)) + (format t "*** f = ~A~%" f) (ignore-errors (with-open-file (f f :direction :input) (let ((*read-eval* nil)) (push (read f) data))))) + (format t "*** data = ~A~%" data) (setq implementations (delete +implementation+ (mapcar #'car data) :test #'string=)) (setq benchmarks (reverse (mapcar #'first (cdr (first data))))) (format t "~25a~10@a" "Benchmark" "Reference")
===================================== benchmarks/cl-bench/support.lisp ===================================== @@ -21,6 +21,10 @@
(defvar *benchmarks* '()) (defvar *benchmark-results* '()) +(defvar *benchmark-file-directory* + (merge-pathnames (make-pathname :directory '(:relative "results")) + (make-pathname :directory (pathname-directory *load-truename*))) + "Directory where the benchmark report file is stored")
(defvar +implementation+ (concatenate 'string @@ -117,11 +121,14 @@
(defun benchmark-report-file () + (ensure-directories-exist *benchmark-file-directory*) (multiple-value-bind (second minute hour date month year) (get-decoded-time) (declare (ignore second)) + ;; Should we use pathnames directly instead of creating a string + ;; naming the file? (format nil "~aCL-benchmark-~d~2,'0d~2,'0dT~2,'0d~2,'0d" - #+win32 "" #-win32 "/var/tmp/" + *benchmark-file-directory* year month date hour minute)))
;; grr, CLISP doesn't implement ~<..~:>
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/f15977bd7d814fd5ea30cf08...