Amplify vs Postal Comparison - subscribe and publish (v14)

Revision 14 of this benchmark created on


Description

modelrn

Preparation HTML

<script src="https://raw.githubusercontent.com/lodash/lodash/master/lodash.min.js">
</script>
<script src="https://raw.githubusercontent.com/postaljs/postal.js/master/lib/postal.min.js">
</script>
<script src="https://raw.githubusercontent.com/mikehostetler/amplify/master/lib/amplify.core.min.js">
</script>
<script src="https://raw.githubusercontent.com/ajacksified/Mediator.js/master/lib/mediator.js">
</script>

Setup

var channel = postal.channel({
      topic: "topic.1"
    });
    
    var mediator = new Mediator();

Test runner

Ready to run.

Testing in
TestOps/sec
postal.js - via channel
var subA = channel.subscribe("topic.one",function(x) {
  //console.log(x);
});
channel.publish("topic.one","Hai, postal channel!");
subA.unsubscribe();
ready
postal.js - via channel + wildcard
var subE = channel.subscribe("topic.*", function(x) {
  //console.log(x);
});
channel.publish("Hai, postal channel wildcard!");
subE.unsubscribe();
ready
postal.js - via global API
var subB = postal.subscribe({
  topic: "topic.one",
  callback: function(x) {
    //console.log(x);
  }
});
postal.publish({
  topic: "topic.one",
  data: "Hai, postal publish!"
});
subB.unsubscribe();
ready
postal.js - via global API + wilcard
var subD = postal.subscribe({
  topic: "topic.*",
  callback: function(x) {
    //console.log(x);
  }
});
postal.publish({
  topic: "topic.one",
  data: "Hai, postal publish wildcard!"
});
subD.unsubscribe();
ready
amplify.js
var fn = function(x) {
  //console.log(x);
};
amplify.subscribe("topic.one", fn);
amplify.publish("topic.one", "Hai, amplify!");
amplify.unsubscribe("topic.one",fn);
ready
mediator.js
var fn = function fn(x) {
  //console.log(x);
};

mediator.subscribe("topic:one", fn);
mediator.publish("topic:one", "Hai, mediator!");
mediator.remove("topic:one",fn);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.