我们正在和我的两个朋友(我们都是新程序员)编写一个简单的聊天服务器/客户端。昨晚当我们运行第一个正在运行的版本时,我们意识到每当有新消息出现时,我们的客户端都会使用更多内存(我尝试过有和没有 gui,在这两种情况下,它仍然使用更多内存和新消息)。
您可以在 https://github.com/osa1/simple-chat 检查我们的代码。先运行服务器,然后运行客户端进行测试。
我使用 XChat 进行 IRC,在数千行文本之后,它仍然使用相同数量的内存。我们正在努力使我们的应用程序像这样。我们需要有关代码和内存问题的建议。
谢谢,对不起我的英语。
我还没有检查过你的代码,但是你是删除旧的聊天消息还是保留对它们的引用?
您可以使用内存探查器来查看是否真的在泄漏内存,但内存增长可能是很自然的,除非您最终出现内存不足异常。
在Oracle Java 6 JDK中使用jvisualvm来分析应用程序的内存,以查看内存的去向。
我们保留所有要显示的消息 它们在客户端的 JTextPane 中(像任何 其他聊天客户端)
你有你的回应。内存消耗增长是因为您存储消息以显示它们。因此,内存当然会随着消息数量的增加而增长。