Polymer vs Object observe vs Knockout (v10)

Revision 10 of this benchmark created by Nuno Cruz on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdn.rawgit.com/MaxArt2501/object-observe/master/dist/object-observe.min.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 subscription = foo.bar.subscribe(function (newValue) {
  changes.push(newValue);
});
foo.bar("hi");
ready

Revisions

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