我已经在这个网站上搜索并阅读了许多关于限制 Java 应用程序内存的帖子。我知道不建议这样做,但如果我真的需要限制我的应用程序使用的最大 RAM。我该怎么做?
我目前的申请取自Oracle tutorial
网站。Knock Knock Server我保持服务器运行,不断从客户端向服务器发送消息,并使用Task Manager
. 我注意到每次发送消息时内存都在增加。我也了解了System.gc();
andRuntime.gc();
我希望它可以减少内存消耗,不幸的是它没有。正如预期的那样。
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
PrintWriter out =
new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
这些命令中的任何一个都可以使用该gc()
命令吗?我还尝试了-Xmx和-Xms希望它也能正常工作。
最后,如果创建一个简单的 java 服务器不是一个好主意。我该怎么办?
编辑:我正在使用-Xms9m
and -Xmx10m
。我希望让应用程序以 10MB 运行,但在它首次启动时。它可以从 14MB 到 17MB,从那里它可以继续增加超过 20MB。