Housekeeping: profiling & freqs

This commit is contained in:
Peter Taoussanis 2013-07-20 00:29:08 +07:00
parent ce9ea0ac76
commit 807cb40e0f
2 changed files with 17 additions and 17 deletions

View File

@ -69,9 +69,8 @@
sorted-fvs (sorted-fvals form-stats)]
(str fname " "
(str/join " "
;; TODO mapv Clojure 1.4+
(vec (map (fn [v] (vector v (get form-stats v 0)))
sorted-fvs)))))))))
(mapv (fn [v] (vector v (get form-stats v 0)))
sorted-fvs))))))))
(comment (format-fdata {:name1 {:a 10 :b 4 :c 20}
:name2 {33 8 12 2 false 6}}))

View File

@ -66,20 +66,21 @@
For performance, stats are calculated once only after all data have been
collected."
[pdata]
(reduce (fn [m [pname times]] ; TODO reduce-kv for Clojure 1.4+
(let [count (count times)
time (reduce + times)
mean (long (/ time count))
mad (long (/ (reduce + (map #(Math/abs (long (- % mean)))
times)) ; Mean absolute deviation
count))]
(assoc m pname {:count count
:min (apply min times)
:max (apply max times)
:mean mean
:mad mad
:time time})))
{} pdata))
(reduce-kv
(fn [m pname times]
(let [count (max 1 (count times))
time (reduce + times)
mean (long (/ time count))
mad (long (/ (reduce + (map #(Math/abs (long (- % mean)))
times)) ; Mean absolute deviation
count))]
(assoc m pname {:count count
:min (apply min times)
:max (apply max times)
:mean mean
:mad mad
:time time})))
{} (or pdata {})))
(defn format-pdata
[stats & [sort-field]]