2011-03-14 8 views
0

アプリケーションのメモリ負荷を軽減するため、hprofレポートを収集しました。レポートには次のものが含まれます。JavaのGrizzlyがバッファ用に多くのメモリを占有していますか?

 
      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[] 

対応するトレースは、次のとおりです。

 
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) 

誰もが空腹.. uhmm ...グリズリーがそうである理由を任意のアイデアを得ましたか。

ありがとうございます!

+0

これはすべてGlassfish V2.1.1サーバーで発生しています。 – Yon

答えて

0

これらのバッファは、チャネルの読み書きに使用されます。読み出しバッファはデフォルトで8192バイトです。デフォルトのサイズは16倍の出力バッファがあります。これらのサイズはあなたのニーズに基づいて調整可能ですが、一般的にはかなりの年月の間のデフォルト値です。

関連する問題