[英]Clojure STM Out of Memory
我有一個應該使用 STM 執行並行銀行轉賬的小程序,所以我在不同的機器上測試它,2 核和 1 核。 在 2 核機器中一切正常,但在 1 核機器中,當我執行 100 萬個並行事務時,會拋出 Java Out of Memory 錯誤。
報錯如下“AWT-EventQueue-0” java.lang.OutOfMemoryError: Java heap space
我還有一個可以運行的同一程序的 Java 同步版本,即使速度較慢,它也可以達到一百萬個事務。
如何使我的 Clojure 應用程序在 1 核機器上運行? 恐怕垃圾收集器無法處理這么多 Refs……你怎么看?
非常感謝你的幫助!
更新:它現在可以工作了,我做了java -Xmx1000m -jar myprog.jar
並且工作得很好!
我不知道可以增加 JVM 的堆大小,而這正是我的問題。 非常感謝“sw1nn”的精彩評論;)
您還可以將 jvm-opts 添加到您的 leiningen project.clj 中,如下所示:
:jvm-opts ["-Xmx1500m"]
在 leiningen 中運行程序時指定它。(如測試)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.