2011-06-23 34 views
0

我有一個VPS(最大512 RAM),我想運行一個簡單的IRC bot。 我用JAVA寫過它,但事實證明JVM正在吃大量的144 MB內存。與JVM不同,機器人本身對內存的需求非常低。Java是一種很好的語言來編寫簡單的機器人/守護進程(當RAM有限時!)?

所以問題是: Java是否適合這項任務?我沒有在這個服務器上運行任何其他的Java應用程序,所以這似乎是一個很浪費的RAM。 在c/C++中重寫所有東西會更好嗎?還是有辦法運行帶有少量JVM內存開銷的小型java程序?

只是爲了確保我們不會重複的問題:-Xms和-Xmx不會幫助,請參閱: Java seems to ignore -Xms and -Xmx options

+0

操作系統是否存在內存壓力。 Java有可能不會釋放內存直到有理由這樣做(即機器內存不足) – Stilgar

+0

您是否需要其他〜350 Mb的內存?如果你的JVM需要150Mb,其他的東西需要400Mb你有問題。如果不是,你很好。使用大量未使用的內存管理器就像運行臃腫的程序一樣浪費大量資源。 – nos

+0

當然我需要所有可以得到VPS的內存 - 否則我不會問這個問題 – Itako

回答

3

顯然,上運行用於運行其應該有一個小的內存佔用一個應用程序的單個實例的唯一目的一個VPS整個JVM是矯枉過正。另一方面,如果你沒有在盒子上運行其他任何東西,那麼就沒有必要擔心這種內存使用情況:爲什麼要重寫一些有用的東西?

當然,我猜測這是一個個人的「爲了好玩」的項目,所以你可以看看幾個language benchmarks基準測試比較的硬數據,如果你有編程改寫你的機器人C/C++而不引入大量內存泄漏,幾乎可以確定內存佔用會更少。

這就是說,你可以找到this wikipedia page上的備用JVM列表,其中一些可能能夠以較低的內存佔用量運行。

相關問題