gpt4 book ai didi

Java 类在 Linux 服务器中消耗大量内存?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:08 27 4
gpt4 key购买 nike

我当时正在研究一种 SMTP 协议(protocol),我用 java 制作并成功运行。它在我的笔记本电脑中消耗了大约 20 到 30 MB。后来我决定让协议(protocol)在互联网上生效。我购买了服务器(VPS)、域名。这让我付出了很多代价。但是,当我试图在该服务器上运行我的程序时,我感到非常震惊,因为我的程序为我运行的每个类消耗了大约 800 到 900 MB。我认为这可能是我的编程错误,我尝试了很多从问题中恢复但我做不到。后来我的一个 friend 建议我在同一台服务器上测试一个简单的 Hello word 程序,我非常震惊,甚至那个程序占用了我总 RAM 的 900 MB。

这是什么样的问题?是那些服务器的故障,还是它们的操作系统和内核版本的故障?是 JVM 与 Linux 内核还是较旧的 Linux 内核的问题。我什至尝试过旧的 JVM,但没有用。 :(

我尝试了大多数流行的 Linux 版本,但它在所有 Linux 版本上的工作原理和问题完全相同。在所有情况下都在消耗大量内存。 (他们都有 Linux 内核 2.6.xx)

但它在我的笔记本电脑中运行非常流畅并消耗了预期的内存。 (大约 30 到 50 Mb)。我在笔记本电脑上使用 Linux。但不同的是我的内核是在 3.1.xx 以上。这可能是问题吗?我对我的服务器的行为感到非常失望,并因此损失了很多钱。请任何人告诉我可能的解决方案,它可能是 Linux 内核的问题还是它在我的编程中的问题。

最佳答案

您的笔记本电脑运行的是 Windows 系统吗?我假设答案是肯定的。您在 Windows 任务管理器中看到的报告的内存值不是 Linux 报告的总驻留内存。

我不认为 Hello World 占用了 900 MB。如果是,则说明报告的是 JVM 内存,而不是您的应用。

您是否在 Tomcat 或 JBOSS 等 Java EE 应用服务器上运行此应用?这确实会产生很大的不同。

最好的建议是在 SO 中搜索其他问题,这些问题展示了如何使用 nmap 等 Linux 工具找出内存消耗的位置。

关于Java 类在 Linux 服务器中消耗大量内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com