NettyClient. java
public void client(String Host, int Port, String msg, HashMap<String, String> map) throws Exception{
EventLoopGroup group = new NioEventLoopGroup();
try {
Bootstrap b = new Bootstrap();
b.group(group)
.channel(NioSocketChannel.class)
.option(ChannelOption.TCP_NODELAY, true)
.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel sc) throws Exception{
ChannelPipeline cp = sc.pipeline();
cp.addLast(new nettyClientHandler(msg, map));
}
});
ChannelFuture cf = b.connect(Host, Port).sync();
cf.channel().closeFuture().sync();
}catch(Exception e) {
e.printStackTrace();
}finally {
Future<?> fc = group.shutdownGracefully();
try {
fc.await();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
Я использовал Memory Analyzer (MAT), чтобы найти утечку памяти. И я знал, что java .lang.ref.Finalizer использует большую память.
Как это исправить?