activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-2932) A little optimization to IdGenerator and a potential issue with the counter
Date Wed, 22 Sep 2010 15:17:40 GMT
A little optimization to IdGenerator and a potential issue with the counter
---------------------------------------------------------------------------

                 Key: AMQ-2932
                 URL: https://issues.apache.org/activemq/browse/AMQ-2932
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 5.4.1
            Reporter: Claus Ibsen
            Priority: Minor


At Apache Camel we have a copy of the ActiveMQ IdGenerator

Camel generator is here
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ActiveMQUuidGenerator.java

ActiveMQ generator is here
https://svn.apache.org/repos/asf/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IdGenerator.java

During some work to introduce pluggable id generators in Camel I did look at the source a
bit more.

1) sequence counter
The sequence counter is a long primitive which uses ++ to increment. Its actually not guaranteed
to be an atomic operation across all JVMs and OSs.
Solution: Use a AtomicLong

2) Optimize generateUuid() method
The generator method concat strings using +
I did some testing on my laptop and by using StringBuilder I could get it to be slightly faster.
And I computed the max size the generated id could be so the string builder has allocated
the space on start.
Solution: Use StringBuilder

See the Camel source code for example.





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