mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[workspace model] add utility to dump memory snapshot
GitOrigin-RevId: cd6f049ffc5b0f83fb98ef002dd3a9d453d12e19
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a00eb9e213
commit
d43f995ead
+35
@@ -0,0 +1,35 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.workspace.jps
|
||||
|
||||
import com.intellij.openapi.application.PathManager
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.testFramework.TestApplicationManager
|
||||
import com.intellij.util.MemoryDumpHelper
|
||||
import com.intellij.util.SystemProperties
|
||||
import com.intellij.workspace.api.TypedEntityStorage
|
||||
import com.intellij.workspace.api.TypedEntityStorageBuilder
|
||||
import com.intellij.workspace.ide.VirtualFileUrlManagerImpl
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
/**
|
||||
* Dumps memory snapshot for workspace model of IDEA Ultimate project to user home directory
|
||||
*/
|
||||
fun main() {
|
||||
TestApplicationManager.getInstance()
|
||||
val data = loadProject()
|
||||
val dumpFile = File(SystemProperties.getUserHome(), "workspace-model.hprof")
|
||||
FileUtil.delete(dumpFile)
|
||||
MemoryDumpHelper.captureMemoryDump(dumpFile.absolutePath)
|
||||
println(data)
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
private fun loadProject(): Pair<JpsProjectSerializers, TypedEntityStorage> {
|
||||
val builder = TypedEntityStorageBuilder.create()
|
||||
val virtualFileManager = VirtualFileUrlManagerImpl()
|
||||
val projectDir = File(PathManager.getHomePath()).asConfigLocation(virtualFileManager)
|
||||
val serializers = JpsProjectEntitiesLoader.loadProject(projectDir, builder, Paths.get("/tmp"), virtualFileManager)
|
||||
return Pair(serializers, builder.toStorage())
|
||||
}
|
||||
Reference in New Issue
Block a user