Andrew Stitcher created PROTON-591:

             Summary: There is are two large, mostly empty tables used for 
dispatching incoming frames
                 Key: PROTON-591
             Project: Qpid Proton
          Issue Type: Improvement
          Components: proton-c
    Affects Versions: 0.7
            Reporter: Andrew Stitcher
            Assignee: Andrew Stitcher

The frame dispatch for the raw amqp and sasl layers use a table with 256 
entries to lookup the handling routine for the incoming performative.

There are only 14 different performatives and there is a separate table for the 
raw amqp and the sasl layer so there are in total 498 empty table entries and 
only 14 actual entries.

Currently we don't need to add performatives on the fly so there is no real 
need for a table that can be altered as in the current design. We can save a 
lot of space and somewhat simplify the code by using a dumb 
construct for the dispatch.

On a 64 bit machine this save about 4k per connection and on a 32 bit around 2k 
per connection (or only 1k if the SASL layer is disabled)

This message was sent by Atlassian JIRA

Reply via email to