我有一个内存不足的java应用程序,但我不知道哪个代码正在分配内存.有没有我可以查看的应用程序?我用Eclipse.
我们有一个Linux服务器,可以启动大约20个java程序.这些java程序都是相同的,除了它们使用的是不同的端口.这些程序运行良好.然而,过了一段时间,所有20个程序都在同一时间崩溃.这些程序中的每一个都分配了2 gig的内存,通过这样启动它们:
java -jar -Xmx 2000m
然而,据我们所知,这些节目并没有使用这些数量的记忆.整个系统有4 gig的内存.
那么,问题是,java程序可能会导致所有其他9个程序崩溃吗?VM是否共享,以便在崩溃时,所有java程序都崩溃了?是否有一个日志文件我可以检查java崩溃的原因?java输出没有显示任何错误.
编辑:奇怪的是,这发生在更长的时间后,如3小时.这20个进程已经运行了相当长的一段时间,然后突然全部崩溃了.如果java运行时为每个程序启动它自己的进程,为什么它们都会崩溃?