Polymer vs Object observe vs Knockout (v7)

Revision 7 of this benchmark created by Jesse Hattabaugh on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdn.rawgit.com/jdarling/Object.observe/master/Object.observe.poly.js"></script>
<script src="http://cdn.rawgit.com/Polymer/observe-js/master/src/observe.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>

Test runner

Ready to run.

Testing in
TestOps/sec
Object.observe
var foo = {
  bar: "hello"
}
var changes = [];
Object.observe(foo, function(changes) {
  changes.push(changes)
});
foo.bar = "hi";
ready
Polymer
var foo = {
  bar: "hello"
}
var changes = [];
var observer = new ObjectObserver(foo);
observer.open(function(added) {
  changes.push(added);
}, foo);
foo.bar = "hi";

Platform.performMicrotaskCheckpoint();
ready
Knockout Observable
var foo = {
  bar: ko.observable("hello")
};
var changes = [];
var observer = ko.computed(function () {
  changes.push(foo.bar());
});
foo.bar("hi");
ready

Revisions

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