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