Igo*_*bin 5 jvm clojure memory-profiling
我如何衡量 Clojure 程序使用了多少内存?
我已经注意到,即使是小程序,也就是这样说
(println "Hello World")
Run Code Online (Sandbox Code Playgroud)
根据时间(GNU时间),ps 和其他类似的工具,可以消耗数十兆字节的RAM 。
是否有任何正确的方法来检测 Clojure 程序真正需要多少内存?
如何限制 Clojure 程序的内存使用量?是否可以说“占用不超过 1 MB”之类的内容?
Clojure 在 JVM 上运行,因此您可以检查它使用了多少内存并像在 Java 中一样限制其内存。
检查内存使用情况:
final double freeMemory = Runtime.getRuntime().freeMemory() / (double) 1024;
final double totalMemory = Runtime.getRuntime().totalMemory() / (double) 1024;
final double usedMemory = totalMemory - freeMemory;
Run Code Online (Sandbox Code Playgroud)
在Clojure中(请原谅我拙劣的成语技巧,还是Clojure的初学者)
(float (/ (- (-> (java.lang.Runtime/getRuntime) (.totalMemory)) (-> (java.lang.Runtime/getRuntime) (.freeMemory))) 1024))
Run Code Online (Sandbox Code Playgroud)
(您可以使用 Java 互操作轻松转换为 Clojure,不确定是否已经有 Clojure 库)。
java -Xmx<memory>
Run Code Online (Sandbox Code Playgroud)
例如:java -Xmx1024m
将 JVM 限制为 1 GiB。
归档时间: |
|
查看次数: |
2266 次 |
最近记录: |