Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-6438

AMQP: Performance improvements and fixes in the Message transformers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.14.0
    • 5.15.0, 5.14.2
    • None
    • None

    Description

      The JMS Message Transformer seem to have several areas where performance can be improved.

      Performance numbers on master before updates were made

      [jms] Total time for 1000000 cycles of transforms = 14209 ms  -> [testComplexQpidJMSMessage[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 4282 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 7363 ms  -> [testTypicalQpidJMSMessage[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 4475 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 2468 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 1613 ms  -> [testBodyOnlyMessage[Transformer->jms]]
      [native] Total time for 1000000 cycles of transforms = 13861 ms  -> [testComplexQpidJMSMessage[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 5429 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 8523 ms  -> [testTypicalQpidJMSMessage[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 4576 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 2577 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 646 ms  -> [testBodyOnlyMessage[Transformer->native]]
      [raw] Total time for 1000000 cycles of transforms = 523 ms  -> [testComplexQpidJMSMessage[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 215 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 474 ms  -> [testTypicalQpidJMSMessage[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 468 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 274 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 436 ms  -> [testBodyOnlyMessage[Transformer->raw]]
      
      

      After updates and fixes.

      [jms] Total time for 1000000 cycles of transforms = 10593 ms  -> [testComplexQpidJMSMessage[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 3571 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 6172 ms  -> [testTypicalQpidJMSMessage[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 3725 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 2202 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->jms]]
      [jms] Total time for 1000000 cycles of transforms = 837 ms  -> [testBodyOnlyMessage[Transformer->jms]]
      [native] Total time for 1000000 cycles of transforms = 13193 ms  -> [testComplexQpidJMSMessage[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 5172 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 7711 ms  -> [testTypicalQpidJMSMessage[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 4061 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 2327 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->native]]
      [native] Total time for 1000000 cycles of transforms = 371 ms  -> [testBodyOnlyMessage[Transformer->native]]
      [raw] Total time for 1000000 cycles of transforms = 212 ms  -> [testComplexQpidJMSMessage[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 19 ms  -> [testTypicalQpidJMSMessageOutBoundOnly[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 210 ms  -> [testTypicalQpidJMSMessage[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 205 ms  -> [testMessageWithNoPropertiesOrAnnotations[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 231 ms  -> [testTypicalQpidJMSMessageInBoundOnly[Transformer->raw]]
      [raw] Total time for 1000000 cycles of transforms = 205 ms  -> [testBodyOnlyMessage[Transformer->raw]]
      
      

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            tabish Timothy A. Bish
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: