我的cordApp正在使用需要更多堆空间的第三方服务,但我无法在从IntelliJ IDEA运行时增加堆大小限制。我见过以下文档:
但是当我从intellij IDE在模拟网络上运行我的应用程序时,我想要更多的堆空间。我尝试过以下解决方案:
每次我跑
调用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
答案 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")
}}