最近看了一个问题,说是 java在创建子进程的时候,由于会申请和父进程相似大小的
内存空间,导致内存使用量翻倍,所以想验证一下.
代码如下所示
public class ProcessDemo {
public static void main(String[] args) throws Exception{
Thread.sleep(20000);
ProcessBuilder pb = new ProcessBuilder("/bin/sh", "-c","ifconfig");
Process process = pb.start();
Scanner scanner = new Scanner(process.getInputStream());
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
Thread.sleep(20000);
scanner.close();
}
}
第一个sleep20秒 是为了使用ps -ef | grep ProcessDemo 查看进程号
然后使用top -p pid 来观察内存使用情况