(ns mmu (:gen-class) (:use [clojure.contrib duck-streams])) (defn gc [] (dotimes [_ 4] (System/gc))) (defn used-memory [] (let [runtime (Runtime/getRuntime)] (gc) (- (.totalMemory runtime) (.freeMemory runtime)))) (defn measure [f] (let [before (used-memory) _ (def foo (with-in-reader f (read))) after (used-memory)] (- after before))) (defn -main [f] (println "Approximate memory usage:" (measure f)))