mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DIRMINA-1061) When AbstractPollingIoProcessor read nothing, free the temporary buffer should be better
Date Fri, 16 Dec 2016 04:01:58 GMT
Mark created DIRMINA-1061:
-----------------------------

             Summary: When AbstractPollingIoProcessor read nothing, free the temporary buffer
should be better
                 Key: DIRMINA-1061
                 URL: https://issues.apache.org/jira/browse/DIRMINA-1061
             Project: MINA
          Issue Type: Improvement
          Components: Core
    Affects Versions: 2.0.16
            Reporter: Mark
            Priority: Minor


{code:title=org.apache.mina.core.polling.AbstractPollingIoProcessor.java|borderStyle=solid}
private void read(S session) {
        IoSessionConfig config = session.getConfig();
        int bufferSize = config.getReadBufferSize();
        IoBuffer buf = IoBuffer.allocate(bufferSize);
//...
//...
            if (readBytes > 0) {
                IoFilterChain filterChain = session.getFilterChain();
                filterChain.fireMessageReceived(buf);
                buf = null;

                if (hasFragmentation) {
                    if (readBytes << 1 < config.getReadBufferSize()) {
                        session.decreaseReadBufferSize();
                    } else if (readBytes == config.getReadBufferSize()) {
                        session.increaseReadBufferSize();
                    }
                }
            }
{code}
it seems that this method will be called when session closing.
it'll better to call buf.free() if readBytes==0, to help allocator recycle this buffer, thx!




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message