我想在我的VPS上运行一个用java编写的非常简单的bot.我想限制jvm内存让我们说10MB(我怀疑它还需要更多).
我正在使用以下命令运行bot:
java -Xms5M -Xmx10M -server -jar IrcBot.jar"/ home/jbot"
但是top显示为java保留的实际内存是144m(或者我在这里解释错误吗?).
13614 jbot 17 0 144米 16米6740秒0.0 3.2 0:00.20 java的
任何想法在这里可能是错的?
Java版"1.6.0_20"Java(TM)SE运行时环境(版本1.6.0_20-b02)Java HotSpot(TM)客户端VM(版本16.3-b01,混合模式)
BTW.我正在运行CentOS - 如果重要的话.
编辑:谢谢你的回答.
我不能真正接受它们中的任何一个,因为事实证明问题在于我选择编写程序的语言,而不是JVM本身.
我知道机会非常低,但有没有办法看到最近输出的nohup-ed进程是什么?
我仍然打开这个进程,但我已经运行它将所有输出重定向到/ dev/null.
那么有没有办法将这样的过程恢复到控制台,或者它是没有希望的:(
干杯
public class Main {
public static final Logger LOGGER = Logger.getLogger(Main.class.getName());
static {
try {
LOGGER.addHandler(new FileHandler("errors.log",true));
}
catch(IOException ex) {
LOGGER.log(Level.WARNING,ex.toString(),ex);
}
}
...
Run Code Online (Sandbox Code Playgroud)
我想知道这个无名静态功能是什么.
我在java(我目前正在学习)中从未见过这样的东西.
它是为了什么?
什么时候通常使用?
什么时候会在程序中执行?
我一直想知道如何在appkernel中加载很多捆绑包(比方说300+),它们的路由信息会影响整体应用程序的性能?
将其视为前端和后端的捆绑条件的加载(提供其中一些实际上只需要一个环境) - 是否值得这样做?
我知道在没有实际测试它的情况下可能很难回答,但也许有人已经广泛研究了sf2的内部结构,以便在添加大量捆绑包及其路由配置时告诉问题的规模.
我认为以下来自mIRC的屏幕截图将帮助您了解我的问题。

我有一个主舞台(1),并且在某些窗格(或任何其他容器)中(2),我想以这种方式添加几个子窗口(3),以使它们不能移到拥有的窗口之外并且不可见/可选在OS任务栏中。
在JavaFX 2.2中有没有办法做到这一点?如果没有窗户(单独的舞台),是否可以与其他可移动容器一起使用?
我有一个VPS(最大512 RAM),我想运行一个简单的IRC机器人.我已经用JAVA编写了它,但事实证明JVM正在吃掉大量的144 MB内存.与JVM不同,机器人本身对内存的需求非常低.
所以问题是:Java是否适合这项任务?我没有在这台服务器上运行任何其他Java应用程序,所以这似乎是一个完全的RAM浪费.用c/c ++重写所有内容会不会更好?还是有办法运行具有少量JVM内存开销的小型Java程序?
只是为了确保我们不会重复问题:-Xms和-Xmx不会有帮助,请参阅: Java似乎忽略-Xms和-Xmx选项