Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java是编写简单的机器人程序/守护程序的好语言吗(当RAM有限时!)?_Java_C_Jvm_Vps - Fatal编程技术网

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

Java是编写简单的机器人程序/守护程序的好语言吗(当RAM有限时!)?,java,c,jvm,vps,Java,C,Jvm,Vps,我有一个VPS(最大512 RAM),我想在它上运行一个简单的IRC机器人。 我用JAVA编写了它,但结果表明JVM消耗了大量144 MB的ram。 与JVM不同,bot本身对内存的需求非常低 因此,问题是: Java适合这个任务吗?我没有在这台服务器上运行任何其他java应用程序,所以这看起来完全是RAM浪费。 用c/c++重写所有东西会更好吗?还是有一种方法可以用很少的JVM内存开销运行小型java程序 为了确保我们没有重复问题:-Xms和-Xmx没有帮助,请参阅: JVM是巨大的。用C或C

我有一个VPS(最大512 RAM),我想在它上运行一个简单的IRC机器人。 我用JAVA编写了它,但结果表明JVM消耗了大量144 MB的ram。 与JVM不同,bot本身对内存的需求非常低

因此,问题是: Java适合这个任务吗?我没有在这台服务器上运行任何其他java应用程序,所以这看起来完全是RAM浪费。 用c/c++重写所有东西会更好吗?还是有一种方法可以用很少的JVM内存开销运行小型java程序

为了确保我们没有重复问题:-Xms和-Xmx没有帮助,请参阅:
JVM是巨大的。用C或C++写的占用空间要小得多。
或者查看较小的虚拟机,如

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

当然,我猜这是一个个人“为了好玩”的项目,所以你可以看看一些比较硬数据的基准,如果你有编程能力在C/C++中重写你的机器人而不引入大量内存泄漏,那么几乎可以肯定内存占用会更少


也就是说,您可以在上找到备用JVM的列表,其中一些JVM可能能够以较低的内存占用率运行。

操作系统上是否存在内存压力。Java可能不会释放内存,直到有理由这样做(即机器内存不足)您是否需要其他约350 Mb的内存来完成任何操作?如果JVM占用150Mb,其他东西占用400Mb,那么您就有问题了。如果不是,你就很好。使用大量未使用的ram运行与运行臃肿的程序一样是一种巨大的浪费。当然,我需要VPS的所有ram——否则我不会问这个问题,你已经被告知(正确或错误地)关于另一个问题(a)你误解了
top
的结果,您的进程使用的是16MB的RAM,而不是144MB;(b)
java
没有忽略
-Xmx
,您也误解了它的含义。在理解这些数字的含义之前,您无法真正评估Java与其他语言的对比,因此我认为您需要在另一个问题上处理这些问题。证明你的进程正在使用144MB的RAM,而不是像Peter Lawrey所说的那样分配144MB的虚拟地址空间。锤子是一个很好的工具吗?如果那是你唯一的工具。。。