-1

我正在尝试在 java 中构建一个简单的转发服务器,它只分配最少量的内存并且很少命中 gc。我可以使用预分配的缓冲区将数据复制到输出流和输入流,但每个新连接似乎分配了大约 10k 的内存。是否有一种简单的方法可以在关闭连接后重用 Socket 对象以避免这种情况(这是假设 Socket 在重用时不需要在内部分配额外的内存)?

澄清一下,“套接字”是指 java 类,而不是套接字的通用概念。“重用”是指我想重用对象分配的内存,以避免通过垃圾收集回收该内存。这样做的动机是创建一个简单、响应迅速的服务器,不需要为垃圾收集而暂停(我知道我可以使用 C/C++ 或专有 JVM,但我正在尝试探索这个解决方案作为一种可能性) .

4

1 回答 1

4

不,一旦关闭,Socket 就不能在 Java 中重用。

于 2013-02-02T17:47:13.613 回答