qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Ross (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Created: (QPID-696) Performance ehnancement for TopicExchange
Date Tue, 04 Dec 2007 19:30:43 GMT
Performance ehnancement for TopicExchange
-----------------------------------------

                 Key: QPID-696
                 URL: https://issues.apache.org/jira/browse/QPID-696
             Project: Qpid
          Issue Type: Improvement
          Components: C++ Broker
         Environment: Any
            Reporter: Ted Ross
            Priority: Minor


The current code in TopicExchange.cpp does a heap allocation per binding, per message.  The
following optimization removes the per-binding allocation and will improve performance particularly
where there are many bindings on a topic exchange.

Index: TopicExchange.cpp
===================================================================
 
 void TopicExchange::route(Deliverable& msg, const string& routingKey, const FieldTable*
/*args*/){
     RWlock::ScopedRlock l(lock);
+    Tokens   tokens(routingKey);
+
     for (BindingMap::iterator i = bindings.begin(); i != bindings.end(); ++i) {
-        if (i->first.match(routingKey)) {
+        if (i->first.match(tokens)) {
             Queue::vector& qv(i->second);
             for(Queue::vector::iterator j = qv.begin(); j != qv.end(); j++){
                 msg.deliverTo(*j);
             }
         }
     }
 } 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message