Le mardi 18 juillet 2006 à 09:57 +0200, Emmanuel Lecharny a écrit : > Julien Vermillard a écrit : > > >Le lundi 17 juillet 2006 à 11:01 -0400, Alex Karasulu a écrit : > > > > > >>Julien Vermillard wrote: > >> > >> > >>>Hi all, > >>> > >>>Actualy it's very easy to calculate bytes thoughput (read and write) by > >>>looking in the IoSession objects and using the following methods : > >>> > >>> long getReadBytes() > >>> Returns the total number of bytes which were read from this > >>>session. > >>> > >>> long getWrittenBytes() > >>> Returns the total number of bytes which were written to this > >>>session. > >>> > >>>But for PDU encoding/decoding performance there is nothing, actualy. > >>> > >>>I would like to add the following methods : > >>> long getReadPDU(); > >>> long getWrittenPDU(); > >>> > >>>I'm thinking about adding them in mina.filter.codec.ProtocolCodecFilter. > >>> > >>>The total count of encoded PDU will be done in ProtocolCodecFilter, but > >>>for the count of decoded PDU I'm thinking about the interface > >>>ProtocolDecoderOutput (implemented in SimpleProtocolDecoderOutput). > >>> > >>> > >>Hmmm so mina can make use of the protocol codec to determine when it > >>should increment the PDU's read and written? > >> > >>Meaniing it can make the decoders and encoders tell it when the > >>demarcations between PDUs occurs? > >> > >>Alex > >> > >> > >> > > > >Decoders call "ProtocolDecoderOutput.write(Object pdu)" each time a PDU > >is decoded so MINA can increment "PDU read count" each time this method > >is called (for a session) > > > >encoders gets PDUs from ProtocolEncoder.encode(Object pdu) so MINA can > >increment the "PDU write count" each time ProtocolDecoderFilter call > >this method for a session. > > > > > > > > > Not sure this is easy to implement. Currently, we decode PDU "on the > fly", and it's done deep inside the Ldap decoder. This is the only place > where we "know" that a PDU has been completely decoded (because MINA > don't read the PDU length, it has no way to know if a PDU has been > totally read or not). When the PDU is decoded, we just call the callback > to handle the PDU. > > Another tricky point - which is not handled currently - is that we > would like to be able to write chunks of data, to avoid MINA to keep a > load of bytes. > Fort instance, if we have a jpeg image to send, we will send it piece by > piece, so that we won't keep 1Mbyte in memory. > > This makes it difficult for MINA to know when a PDU has been sent, > except if we extend MINA to add a PDUDecoded() method call to tell MINA > that a PDU has been fully decoded. Or something like that. > > Emmanuel
As we chatted on IRC, the ASN.1 codec is special and in this case MINA can't count PDU.
smime.p7s
Description: S/MIME cryptographic signature
