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

Intellij idea 如何在intelliJ IDEA中增加cordApp堆大小,intellij-idea,corda,Intellij Idea,Corda,我的cordApp正在使用需要更多堆空间的第三方服务,但在IntelliJ IDEA上运行时,我无法增加堆大小限制。我看过以下文件: 但当我从intellij IDE在模拟网络上运行我的应用程序时,我需要更多的堆空间。我尝试了以下解决方案: 在运行配置中设置VM选项-Xmx1048m 编辑idea.vmoptions (Mac)更改首选项>生成、执行、部署>编译器[参数] (Mac)更改首选项>生成、执行、部署>编译器>Kotlin编译器[params] 每次我跑步 Runtime.getRu

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

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

  • 在运行配置中设置VM选项-Xmx1048m
  • 编辑idea.vmoptions
  • (Mac)更改首选项>生成、执行、部署>编译器[参数]
  • (Mac)更改首选项>生成、执行、部署>编译器>Kotlin编译器[params]
  • 每次我跑步

    Runtime.getRuntime().maxMemory()

    我得到大约209715200字节(209Mbs)的堆化

    编辑:

    idea.vmoptions文件

    -Xms1g
    -Xmx4g
    -XX:ReservedCodeCacheSize=240m
    -XX:+UseCompressedOops
    -数据文件编码=UTF-8
    -XX:+UseConMarkSweepGC
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -Dsun.io.useConcaches=false
    -Djava.net.preferIPv4Stack=true
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-省略StackTraceInFastThrow
    -Xverify:无

    -XX:ErrorFile=$USER\u HOME/java\u error\u in\u idea\u%p.log
    -XX:HeapDumpPath=$USER\u HOME/java\u error\u in\u idea.hprof
    -Xbootclasspath/a:../lib/boot.jar


    我使用了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")
    }}
    
    fun main(args:Array){
    //不需要权限,因为我们没有调用流。
    val节点参数=节点参数(maximumHeapSize=“800m”)
    val user=user(“user1”,“test”,权限=setOf(“ALL”))
    驱动程序(驱动程序参数(isDebug=true,waitForAllNodesToFinish=true)){
    val(partyA、partyB、partyC)=列表(
    startNode(nodeParams,providedName=CordaX500Name(“PartyA”、“London”、“GB”),rpcUsers=listOf(user),maximumHeapSize=“800m”),
    startNode(nodeParams,providedName=CordaX500Name(“PartyB”、“纽约”、“美国”),rpcUsers=listOf(用户),maximumHeapSize=“800m”),
    startNode(nodeParams,providedName=CordaX500Name(“PartyC”、“Paris”、“FR”),rpcUsers=listOf(user),maximumHeapSize=“800m”)).map{it.getOrThrow()}
    startWebserver(第二部分,“800m”)
    startWebserver(partyB,“800m”)
    startWebserver(partyC,“800m”)
    }}
    
    我使用了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")
    }}
    
    fun main(args:Array){
    //不需要权限,因为我们没有调用流。
    val节点参数=节点参数(maximumHeapSize=“800m”)
    val user=user(“user1”,“test”,权限=setOf(“ALL”))
    驱动程序(驱动程序参数(isDebug=true,waitForAllNodesToFinish=true)){
    val(partyA、partyB、partyC)=列表(
    startNode(nodeParams,providedName=CordaX500Name(“PartyA”、“London”、“GB”),rpcUsers=listOf(user),maximumHeapSize=“800m”),
    startNode(nodeParams,providedName=CordaX500Name(“PartyB”、“纽约”、“美国”),rpcUsers=listOf(用户),maximumHeapSize=“800m”),
    startNode(nodeParams,providedName=CordaX500Name(“PartyC”、“Paris”、“FR”),rpcUsers=listOf(user),maximumHeapSize=“800m”)).map{it.getOrThrow()}
    startWebserver(第二部分,“800m”)
    startWebserver(partyB,“800m”)
    startWebserver(partyC,“800m”)
    }}
    
    您可以发布idea.vmoptions文件的内容吗?听起来这不是Corda特有的问题,我正在使用Corda V2,我想我无法更改单个节点的heapsize,因为V2 Corda.jar是用VM Args:Xmx200m编译的。我克隆了一个新的V3 github.com/corda/cordapp-example副本,计划尝试@OmerShafiq为什么在编译代码时需要堆?@Shinchan我在build.gradle中添加了第三方依赖项,我的cordapp编译和启动都非常好,但当我启动corda流时,在我的示例“创建IOU”中,它抛出内存不足(堆空间)的异常*注意,我没有使用新包含的依赖项的任何功能。在V2 cordapp示例中,使用新依赖项更新build.gradle后,一切正常,但当我尝试访问新包含的依赖项的功能时,我得到以下结果:java.lang.IllegalArgumentException:系统内存209715200必须至少为471859200。请增加堆大小。您可以发布idea.vmoptions文件的内容吗?听起来这不是Corda特有的问题,我正在使用Corda V2,我想我无法更改单个节点的heapsize,因为V2 Corda.jar是用VM Args:Xmx200m编译的。我克隆了一个新的V3 github.com/corda/cordapp-example副本,计划尝试@OmerShafiq为什么在编译代码时需要堆?@Shinchan我在build.gradle中添加了第三方依赖项,我的cordapp编译和启动都非常好,但当我启动corda流时,在我的示例“创建IOU”中,它抛出内存不足(堆空间)的异常*注意,我没有使用新包含的依赖项的任何功能。在V2 cordapp示例中,使用新依赖项更新build.gradle后,一切正常,但当我尝试访问新包含的依赖项的功能时,我得到以下结果:java.lang.IllegalArgumentException:系统内存209715200必须至少为471859200。请增加堆大小