如何在intelliJ IDEA中增加cordApp堆大小

时间:2018-03-25 04:12:38

标签: intellij-idea corda

我的cordApp正在使用需要更多堆空间的第三方服务,但我无法在从IntelliJ IDEA运行时增加堆大小限制。我见过以下文档:

  

https://docs.corda.net/running-a-node.html

但是当我从intellij IDE在模拟网络上运行我的应用程序时,我想要更多的堆空间。我尝试过以下解决方案:

  1. 在运行配置中设置VM选项-Xmx1048m
  2. 编辑idea.vmoptions
  3. (Mac)更改首选项>构建,执行,部署>编译器[params]
  4. (Mac)更改首选项>构建,执行,部署>编译器> Kotlin编译器[params]
  5. 每次我跑

      

    调用Runtime.getRuntime()。maxMemory()

    我得到大约209715200字节(209 MB)

    的大小写

    修改

    idea.vmoptions文件

      

    -Xms1g
      -Xmx4g
      -XX:ReservedCodeCacheSize =240米
      -XX:+ UseCompressedOops
      -Dfile.encoding = UTF-8
      -XX:+ UseConcMarkSweepGC
      -XX:SoftRefLRUPolicyMSPerMB = 50
      -ea
      -Dsun.io.useCanonCaches =假
      -Djava.net.preferIPv4Stack =真
      -XX:+ HeapDumpOnOutOfMemoryError
      -XX:-OmitStackTraceInFastThrow
      -Xverify:无
      
      -XX:错误文件= $ USER_HOME / java_error_in_idea_%p.log
      -XX:HeapDumpPath = $ USER_HOME / java_error_in_idea.hprof
      -Xbootclasspath / A:../ LIB / boot.jar

1 个答案:

答案 0 :(得分:2)

我使用Corda V3并更新了NodeDriver.kt,它对我有用

fun main(args: Array<String>) {
// No permissions required as we are not invoking flows.
val nodeParams = NodeParameters(maximumHeapSize = "800m")
val user = User("user1", "test", permissions = setOf("ALL"))
driver(DriverParameters(isDebug = true, waitForAllNodesToFinish = true)) {
    val (partyA, partyB, partyC) = listOf(
            startNode(nodeParams, providedName = CordaX500Name("PartyA", "London", "GB"), rpcUsers = listOf(user), maximumHeapSize = "800m"),
            startNode(nodeParams, providedName = CordaX500Name("PartyB", "New York", "US"), rpcUsers = listOf(user), maximumHeapSize = "800m"),
            startNode(nodeParams, providedName = CordaX500Name("PartyC", "Paris", "FR"), rpcUsers = listOf(user), maximumHeapSize = "800m")).map { it.getOrThrow() }
    startWebserver(partyA,"800m")
    startWebserver(partyB,"800m")
    startWebserver(partyC,"800m")
}}