<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
As promised, here is a summary of the *extremely preliminary* AMS
performance benchmarking I've done to date.&nbsp; These are results I got
from using AMS to publish 200 million bytes of data in various
configurations (lots of tiny messages, a smaller number of larger
messages, etc.), with either 1 subscriber or 2 subscribers.&nbsp; The
numbers in the "2 subscr" column are per subscriber, so the total
performance is twice the number shown.&nbsp; The publishing application was
running on a Pentium III-based machine running Red Hat 8.0 Linux; the
subscribing application(s) ran on a second Pentium III-based machine
that was running Fedora Core 3.&nbsp; The two machines were privately
connected via a 100-Mbps Ethernet switch with no other traffic; AMS was
running over a TCP transport system.<br>
<br>
<table class="MsoTableGrid"
 style="border: medium none ; border-collapse: collapse;" border="1"
 cellpadding="0" cellspacing="0">
  <tbody>
    <tr style="">
      <td
 style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style=""><o:p>&nbsp;</o:p></b></p>
      </td>
      <td
 style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style=""><o:p>&nbsp;</o:p></b></p>
      </td>
      <td
 style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Msgs/sec<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Msgs/sec<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Mbps<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Mbps<o:p></o:p></b></p>
      </td>
    </tr>
    <tr style="">
      <td
 style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Msg Size<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">Msg Count<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">1 subscr<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">2 subscr<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">1 subscr<o:p></o:p></b></p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: center;" align="center"><b
 style="">2 subscr<o:p></o:p></b></p>
      </td>
    </tr>
    <tr style="">
      <td
 style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: right;" align="right">20</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">10
million</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">11560</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: right;" align="right">8581</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">1.7</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">1.3</p>
      </td>
    </tr>
    <tr style="">
      <td
 style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: right;" align="right">200</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">1
million</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">10124</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: right;" align="right">6642</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">15.4</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">10.1</p>
      </td>
    </tr>
    <tr style="">
      <td
 style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: right;" align="right">2000</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">100,000</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">4800</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: right;" align="right">2529</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">73.2</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">38.6</p>
      </td>
    </tr>
    <tr style="">
      <td
 style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 59.4pt;"
 valign="top" width="79">
      <p class="MsoNormal" style="text-align: right;" align="right">20000</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">10,000</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1in;"
 valign="top" width="96">
      <p class="MsoNormal" style="text-align: right;" align="right">587</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 63pt;"
 valign="top" width="84">
      <p class="MsoNormal" style="text-align: right;" align="right">293</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">89.6</p>
      </td>
      <td
 style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 0.75in;"
 valign="top" width="72">
      <p class="MsoNormal" style="text-align: right;" align="right">44.8</p>
      </td>
    </tr>
  </tbody>
</table>
<p class="MsoNormal">Notice how the performance goes from being
(apparently) CPU-limited for
the very small messages to I/O-limited for the largest messages.&nbsp; The
peak message rate I saw was about 17,000 total messages per second, so
it was taking on average a little less than 60 microseconds to issue
each message.<br>
</p>
<p class="MsoNormal">Plenty of room for optimization (e.g., the code
wasn't even compiled with any optimization switches set), performance
will be different on different hardware, and it will be interesting to
see how a message-queue-based system does in contrast to TCP.<br>
</p>
<p class="MsoNormal"><o:p>Scott<br>
</o:p></p>
</body>
</html>