Java';Grizzly为缓冲区占用了大量内存?

Java';Grizzly为缓冲区占用了大量内存?,java,memory-management,grizzly,Java,Memory Management,Grizzly,为了减少应用程序的内存负载,我们收集了一份hprof报告。该报告包括以下内容: percent live alloc'ed stack class rank self accum bytes objs bytes objs trace name 1 9.42% 9.42% 57414792 219 57414792 219 373093 byte[] 2 6.45% 15.87% 39328800

为了减少应用程序的内存负载,我们收集了一份hprof报告。该报告包括以下内容:

percent live alloc'ed stack class rank self accum bytes objs bytes objs trace name 1 9.42% 9.42% 57414792 219 57414792 219 373093 byte[] 2 6.45% 15.87% 39328800 300 39328800 300 367689 byte[] 8 1.74% 30.92% 10618776 81 39328800 300 367958 byte[] 允许堆栈类的活动百分比 秩自累积字节objs字节objs跟踪名称 1 9.42%9.42%57414792 219 57414792 219 373093字节[] 2 6.45%15.87%39328800 300 39328800 300 367689字节[] 8 1.74%30.92%10618776 81 39328800 300 367958字节[] 相应的轨迹为:

TRACE 373093: java.nio.HeapByteBuffer.(HeapByteBuffer.java:39) java.nio.ByteBuffer.allocate(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.realWriteBytes(SocketChannelOutputBuffer.java:153) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer$NIOOutputStream.write(SocketChannelOutputBuffer.java:240) TRACE 367689: java.nio.HeapByteBuffer.(HeapByteBuffer.java:39) java.nio.ByteBuffer.allocate(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.(SocketChannelOutputBuffer.java:100) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.initialize(DefaultProcessorTask.java:436) TRACE 367958: java.nio.HeapByteBuffer.(HeapByteBuffer.java:39) java.nio.ByteBuffer.allocate(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.(SocketChannelOutputBuffer.java:100) com.sun.enterprise.web.connector.grizzly.ssl.SSLOutputBuffer.(SSLOutputBuffer.java:59) 跟踪373093: HeapByteBuffer.java:39 分配(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.realWriteBytes(SocketChannelOutputBuffer.java:153) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer$nioutputstream.write(SocketChannelOutputBuffer.java:240) 跟踪367689: HeapByteBuffer.java:39 分配(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.(SocketChannelOutputBuffer.java:100) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.initialize(DefaultProcessorTask.java:436) 跟踪367958: HeapByteBuffer.java:39 分配(ByteBuffer.java:312) com.sun.enterprise.web.connector.grizzly.SocketChannelOutputBuffer.(SocketChannelOutputBuffer.java:100) com.sun.enterprise.web.connector.grizzly.ssl.SSLOutputBuffer.(SSLOutputBuffer.java:59) 有人知道灰熊为什么这么。。。嗯。。饿了吗


谢谢

这些缓冲区用于从通道读/写。读取缓冲区默认为8192字节。有一个输出缓冲区,它的默认大小是它的16倍。这些大小可以根据您的需要进行调整,但多年来通常都是相当不错的默认值。

这一切都发生在Glassfish V2.1.1服务器上。