Skip to content

Instantly share code, notes, and snippets.

@mflatt
Created November 14, 2020 13:30
Show Gist options
  • Save mflatt/f55adb5a6d08045c0d6276b4ce64ddfb to your computer and use it in GitHub Desktop.
Save mflatt/f55adb5a6d08045c0d6276b4ce64ddfb to your computer and use it in GitHub Desktop.
#lang racket/base
(define ht (make-hash))
(define N 30000)
(time
(for ([i N])
(hash-set! ht i i)))
(time
(for ([i N])
(hash-set! ht (+ 0.0 i) i)))
(time
(for ([i N])
(hash-set! ht (arithmetic-shift i 16) i)))
(time
(for ([i N])
(hash-set! ht (arithmetic-shift i 32) i)))
(time
(for ([i N])
(hash-set! ht (arithmetic-shift i 100) i)))
#|
CS
----
Old:
cpu time: 1 real time: 1 gc time: 0
cpu time: 8062 real time: 8068 gc time: 7
cpu time: 13670 real time: 13684 gc time: 4
cpu time: 33225 real time: 33258 gc time: 11
cpu time: 60236 real time: 60326 gc time: 8
New:
cpu time: 1 real time: 1 gc time: 0
cpu time: 3 real time: 3 gc time: 0
cpu time: 13 real time: 13 gc time: 9
cpu time: 2 real time: 2 gc time: 0
cpu time: 15 real time: 16 gc time: 5
Old with N * 10:
cpu time: 57 real time: 58 gc time: 35
[... rest are longer than I'm willing to wait]
New with N * 10:
cpu time: 60 real time: 60 gc time: 37
cpu time: 111 real time: 111 gc time: 77
cpu time: 66 real time: 66 gc time: 8
cpu time: 147 real time: 147 gc time: 88
cpu time: 209 real time: 210 gc time: 31
BC
----
Old:
cpu time: 5 real time: 6 gc time: 0
cpu time: 6 real time: 6 gc time: 0
cpu time: 201 real time: 202 gc time: 0
cpu time: 20202 real time: 20219 gc time: 5
cpu time: 18159 real time: 18162 gc time: 0
New:
cpu time: 4 real time: 3 gc time: 0
cpu time: 8 real time: 8 gc time: 0
cpu time: 7 real time: 7 gc time: 0
cpu time: 29 real time: 29 gc time: 5
cpu time: 8 real time: 8 gc time: 0
Old with N * 10:
cpu time: 69 real time: 69 gc time: 7
cpu time: 141 real time: 141 gc time: 14
cpu time: 6473 real time: 6473 gc time: 50
[...]
New with N * 10:
cpu time: 37 real time: 37 gc time: 7
cpu time: 152 real time: 153 gc time: 14
cpu time: 347 real time: 347 gc time: 49
cpu time: 120 real time: 120 gc time: 0
cpu time: 804 real time: 805 gc time: 133
|#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment