Java是编写简单机器人/守护进程的好语言(当RAM有限时!)?

时间:2011-06-23 07:44:25

标签: java c jvm vps

我有一个VPS(最大512 RAM),我想运行一个简单的IRC机器人。 我已经用JAVA编写了它,但事实证明JVM正在吃掉大量的144 MB内存。 与JVM不同,机器人本身对内存的需求非常低。

所以问题是: Java适合这项任务吗?我没有在这台服务器上运行任何其他Java应用程序,所以这似乎是一个完全的RAM浪费。 用c / c ++重写所有内容会不会更好?或者有一种方法可以运行具有很少JVM内存开销的小型Java程序吗?

为了确保我们不会重复问题:-Xms和-Xmx不会有帮助,请参阅: Java seems to ignore -Xms and -Xmx options

2 个答案:

答案 0 :(得分:5)

JVM非常庞大。用C或C ++编写,占用空间小得多。

或查看较小的虚拟机,例如http://jamvm.sourceforge.net/

答案 1 :(得分:3)

显然,在VPS上运行整个JVM的唯一目的是运行应该具有较小内存占用量的应用程序的单个实例,这是过度的。另一方面,如果你没有在盒子上运行任何其他东西,那么就没有必要担心这种内存使用水平:为什么重写一些有效的东西?

当然,我猜这是一个个人的“有趣”项目,因此您可以查看一些language benchmarks基准测试用于比较硬数据,如果您有编程印章来重写您的在没有引入大量内存泄漏的情况下,C / C ++中的bot几乎可以肯定内存占用量会减少。

话虽如此,您可以在this wikipedia page上找到备用JVM列表,其中一些可能能够以较低的内存占用量运行。