我正在尝试使用 Spark(在 Soot -Eclipse 框架中)为 java 代码生成调用图。我从 HelloWorld 开始。即使对于这个小例子,看起来系统内存也不够用。
Soot has run out of the memory allocated to it by the Java VM.
To allocate more memory to Soot, use the -Xmx switch to Java.
For example (for 400MB): java -Xmx400m soot.Main .
我的机器是基于 Windows 的 4GB Core I-5。运行的eclipse进程是javaw.exe。即使对于使用烟灰的 Helloworld,是否也会出现这种内存不足行为?我是运行 java 分析的新手,我不确定库类是否会增加巨大的开销。
或者,也许正确的问题是 - 我如何使用 -Xmx 开关在 Windows 上的 Eclipse 中运行具有更多内存的 Soot - 有人这样做过吗?
Eclipse 中的命令如下。我在 Spark Analysis 中使用了一些简化选项。
soot.Main --w --d C:\Users\nbalaji\workspace\HelloWorld\sootOutput
--process-path C:\Users\nbalaji\workspace/HelloWorld/src;
--cp /C:/Users/nbalaji/workspace/HelloWorld/bin/, < bunch of Java/jre7 files >
编辑:现在解决了。来自 Soot 生存指南:设置运行配置时,您应该将以下参数添加到 JVM -Xmx512m -Xss256m 以增加 VM 内存。