我想在 Cygwin 上运行一个java程序。该代码将两个非常大的文件作为输入。当我试图在Cygwin上运行程序时,我得到了以下信息:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at code_name.main(code_name.java:52)
我试图增加堆(java -Xms1024m -Xmx2048m javafile inputfile1 inputfile2)
,但它仍然没有用!
是否解决了在内存较大的远程服务器上运行代码的问题?如果是,如何在Cygwin上定义服务器目录?
请注意,我使用的是Windows,而我的机器是64位
答案 0 :(得分:0)
首先,应用程序使用太多内存并不是Java的错。而且这也不是Cygwin的错。
最有可能的是,它是以下之一:
应用程序使用内存效率低下;例如将文件整体加载到内存中。
应用程序存在内存泄漏
问题本身太大,无法用2GB堆来解决。
是否解决了在内存较大的远程服务器上运行代码的问题?
可能是的,可能没有。这取决于应用程序内存不足的原因以及问题大小。它还取决于服务器的大小。
提示:你应该弄清楚为什么应用程序内存不足2GB堆。应用程序的源代码和stacktrace中会有一些线索。
如果是,如何在Cygwin上定义服务器目录?
我不知道你的意思。
我建议您只需登录远程服务器,安装cygwin,Java和其他所需的工具,然后从远程服务器的命令提示符运行该应用程序。