4 ms·
Common Lisp (sbcl.org): (non-optimized - needs to remove need for consing) (defmethod performance-count ((path-file string)) (let ((map (make-hash-table :
by gibsonf1 6y ago
Common Lisp (sbcl.org): (non-optimized - needs to remove need for consing)
(defmethod performance-count ((path-file string))
(let ((map (make-hash-table :test 'equal)))
(with-open-file (stream path-file :direction :input :if-does-not-exist nil)
(when stream
(loop for line = (read-line stream nil 'end)
until (eq line 'end)
do
(let ((split (split-string #\space (string-downcase line))))
(dolist (word split)
(let ((index (gethash word map)))
(if index
(setf (gethash word map) (incf index))
(setf (gethash word map) 1))))))
(let ((keys (sort (alexandria:hash-table-keys map) (lambda(x y)(> (gethash x map)(gethash y map))))))
(dolist (key keys)
(format t "~A ~A~%" key (gethash key map))))))))
WEB> (time (performance-count "/home/frederick/performance-comparison.txt"))
the 4
foo 2
defenestration 1
Evaluation took:
0.000 seconds of real time
0.000294 seconds of total run time (0.000000 user, 0.000294 system)
100.00% CPU
757,077 processor cycles
0 bytes consed
NIL
WEB>
- fishmaster 6y agoDoes that use the corpus from the article?