[英]UDP library for Java that works garbage free
没有垃圾是什么意思? 在 UDP 中,您可能会丢失消息,这是该协议固有的。 如果您希望在 UDP 之上具有一定的可靠性,您需要有一个额外的层来管理确认、重传等。这意味着您的生产者和消费者应用程序必须使用这一层 API 来发送/接收消息。
一个非常简短的例子就是:
import java.lang.System;
public class UdpNoGc {
public static void main(String[] args) throws Exception {
var buf = new byte[1024];
var pkt = new java.net.DatagramPacket(buf, buf.length);
try (var sock = new java.net.DatagramSocket(4321)) {
for (;;) {
sock.receive(pkt);
System.out.write(buf, 0, pkt.getLength());
System.gc();
}
}
}
}
显式System.gc()
调用就在那里,因此您可以运行:
java "-Xlog:gc,heap*" UdpNoGc
并看到它在启动后没有分配任何东西。 请注意,在 Java 中编写不分配的代码有些困难,使用对此提供更多支持的另一种语言可能更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.