Loading README.org +21 −1 Original line number Diff line number Diff line * COMMENT -*- mode: org -*- #+Date: 2016-12-16 Time-stamp: <2017-01-18> Time-stamp: <2017-01-25> * database binding benchmark I want to know the efficiency of the db binding for different language, Loading Loading @@ -84,3 +84,23 @@ https://www.postgresql.org/docs/9.4/static/libpq.html -- 0.372 26.4 ** postgres 9.4, racket 6.5 2.21 26.72 -- 1.85 26.63 - I think I maybe testing disk IO performance. should use the pg bench cluster for benchmarking. bench cluster listen on port 5433. when running against bench cluster. result is 2.15 2.29 -- 2.10 2.21 So write performance is definitely testing disk IO performance. Read performance is related to the language and runtime. racket-postgres/bench.rkt 0 → 100644 +39 −0 Original line number Diff line number Diff line #lang racket (require db) (define pgc-bench (postgresql-connect #:user "bench" #:database "t1" #:password "fNfwREMqO69TB9YqE+/OzF5/k+s=" #:port 5433)) (define pgc (postgresql-connect #:user "t1" #:database "t1" #:password "fNfwREMqO69TB9YqE+/OzF5/k+s=")) (define TIMES 3000) ;; TODO how to create a macro that allow cl dotimes? ;; (dotimes (i 10) ;; (display (format "~a\n" i))) ;; run prog many times, show time cost. (define-syntax-rule (timeit prog times) (let ((start (current-inexact-milliseconds))) (do ([n 0 (+ n 1)]) ((> n times)) prog) (display (format "~as\n" (/ (- (current-inexact-milliseconds) start) 1000))))) (define (select-test) (timeit (query pgc "SELECT id, bar FROM foo") TIMES)) (define (update-test) (timeit (query-exec pgc "UPDATE foo SET bar=bar+1 WHERE id=1") TIMES)) (define (main) (select-test) (update-test)) (main) Loading
README.org +21 −1 Original line number Diff line number Diff line * COMMENT -*- mode: org -*- #+Date: 2016-12-16 Time-stamp: <2017-01-18> Time-stamp: <2017-01-25> * database binding benchmark I want to know the efficiency of the db binding for different language, Loading Loading @@ -84,3 +84,23 @@ https://www.postgresql.org/docs/9.4/static/libpq.html -- 0.372 26.4 ** postgres 9.4, racket 6.5 2.21 26.72 -- 1.85 26.63 - I think I maybe testing disk IO performance. should use the pg bench cluster for benchmarking. bench cluster listen on port 5433. when running against bench cluster. result is 2.15 2.29 -- 2.10 2.21 So write performance is definitely testing disk IO performance. Read performance is related to the language and runtime.
racket-postgres/bench.rkt 0 → 100644 +39 −0 Original line number Diff line number Diff line #lang racket (require db) (define pgc-bench (postgresql-connect #:user "bench" #:database "t1" #:password "fNfwREMqO69TB9YqE+/OzF5/k+s=" #:port 5433)) (define pgc (postgresql-connect #:user "t1" #:database "t1" #:password "fNfwREMqO69TB9YqE+/OzF5/k+s=")) (define TIMES 3000) ;; TODO how to create a macro that allow cl dotimes? ;; (dotimes (i 10) ;; (display (format "~a\n" i))) ;; run prog many times, show time cost. (define-syntax-rule (timeit prog times) (let ((start (current-inexact-milliseconds))) (do ([n 0 (+ n 1)]) ((> n times)) prog) (display (format "~as\n" (/ (- (current-inexact-milliseconds) start) 1000))))) (define (select-test) (timeit (query pgc "SELECT id, bar FROM foo") TIMES)) (define (update-test) (timeit (query-exec pgc "UPDATE foo SET bar=bar+1 WHERE id=1") TIMES)) (define (main) (select-test) (update-test)) (main)