(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))))))))
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
(defmethod performance-count ((path-file string))
WEB> (time (performance-count "/home/frederick/performance-comparison.txt"))the 4
foo 2
defenestration 1
Evaluation took:
NIL WEB>