java.lang.outofmemoryError:java堆空间问题

发布于 2024-09-12 09:42:10 字数 139 浏览 5 评论 0原文

我必须创建一个 RMI 程序,当我运行这个程序时,它只会运行几分钟,然后显示“java.lang.outofmemoryError: java heap space”问题。我必须使用 Window 7、1.5 GB RAM 和 JDK1.6

谢谢,

I have to create a RMI program,when i run this program it will run only few minutes then show "java.lang.outofmemoryError: java heap space" problem. I have to use Window 7 with 1.5 GB RAM and JDK1.6

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

挽梦忆笙歌 2024-09-19 09:42:10

闻到内存泄漏的味道。尽管 Java 进行垃圾回收,但您仍然需要确保不会保留(强引用)不再需要的对象。例如,如果您不取消注册事件处理程序(并且事件处理程序样板代码保留对处理程序的强引用),则这些处理程序将永远不会被收集,从而导致内存泄漏。

在不了解您的程序的更多信息的情况下,我们只能在这里猜测。

Smells memory leak. Although Java does garbage collection, you still need to make sure you don't hold onto (strong reference) to objects that you no longer need. For example, if you do not unregister event handlers (and event handler boilerplate code holds strong reference to the handlers), those handlers will never be collected and thus memory leak.

Without knowing more of your program, we can just guess here.

神回复 2024-09-19 09:42:10

您可能只需要使用 -Xmx 选项增加最大堆大小。

您可以阅读此调整指南

You may simply need to increase your maximum heap size using the -Xmx option.

You could read this tuning guide

迷离° 2024-09-19 09:42:10

内存泄漏。使用jdk中的jvisualvm查找原因。

Memory leak. Use jvisualvm in the jdk to find out why.

第七度阳光i 2024-09-19 09:42:10

这可能是几件事之一。

  • 您可能存在内存泄漏。在垃圾收集环境中,这意味着您保留了不再需要的内存。使用分析器(Yourkit 或其他)进行内存分析将有助于确定您保留的是什么以及如何保留。
  • 根据您的 jvm 版本,默认堆分配可能不会那么多。尽管对于 rmi 应用程序来说不太可能,但您有可能会合法地耗尽内存。使用 -Xms 开关增加初始堆大小,并使用 -Xmx 限制堆的最大大小。例如
    java -Xms128m -Xmx512m ...

This can be a one of several things.

  • You may have a memory leak. In a garbage collected environment this means you are holding on to memory you no longer need. Using a profiler (Yourkit or whatever) to do memory profiling will help to determine what it is you are holding on to, and how.
  • Depending on your jvm version, the default heap allocation may not be all that much. It is possible, though not likely for an rmi application, that you are legitimitely running out of memory. Use the -Xms switch to increase the initial heap size, and -Xmx to limit the heap's maximum size. e.g.
    java -Xms128m -Xmx512m ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文