DF

Size: a a a
DF
DF
ST
DF
DF
ST
ST
(time
(let [c (atom 0)
n (int 1e8)]
(dotimes [_ n]
(swap! c inc))
@c))
(time
(let [c (volatile! 0)
n (int 1e8)]
(dotimes [_ n]
(vswap! c inc))
@c))
(time
(let [c (volatile! 0)
n (int 1e8)]
(dotimes [_ n]
(vswap! c unchecked-inc-int))
@c))
"Elapsed time: 1831.561 msecs"
=> 100000000
"Elapsed time: 1238.6742 msecs"
=> 100000000
"Elapsed time: 953.5168 msecs"
=> 100000000
ST
(time
(let [c (volatile! 0)
n (int 1e8)]
(dotimes [_ n]
(vswap! c unchecked-inc-int))
@c))
ST
(time
(loop [i (int 0)
n (int 1e8)]
(if (pos? n)
(recur (unchecked-inc-int i) (unchecked-dec-int n))
i)))
"Elapsed time: 127.8603 msecs"
=> 100000000
ST
(time
(loop [i (int 0)
n (int 1e8)]
(if (pos? n)
(recur (unchecked-inc-int i) (unchecked-dec-int n))
i)))
"Elapsed time: 127.8603 msecs"
=> 100000000
(time
(loop [i (int 0)
n (int 1e8)]
(if (pos? n)
(recur (inc i) (dec n))
i)))
"Elapsed time: 98.6391 msecs"
=> 100000000
IP
ST
IP
IP
ST
IP
DF
(time
(let [c (volatile! 0)
n (int 1e8)]
(dotimes [_ n]
(vswap! c unchecked-inc-int))
@c))
DF
(time
(loop [i (int 0)
n (int 1e8)]
(if (pos? n)
(recur (inc i) (dec n))
i)))
"Elapsed time: 98.6391 msecs"
=> 100000000