|
|
@@ -0,0 +1,87 @@
|
|
|
+function bench (fn, n) {
|
|
|
+ var s = Date.now()
|
|
|
+ var vms = []
|
|
|
+ for (var i = 0; i < n; i++) {
|
|
|
+ vms.push(fn())
|
|
|
+ }
|
|
|
+ console.log(n + ' ' + fn.desciption + ': ' + (Date.now() - s) + 'ms')
|
|
|
+}
|
|
|
+
|
|
|
+function emptyInstance () {
|
|
|
+ return new Vue()
|
|
|
+}
|
|
|
+emptyInstance.desciption = 'empty instances'
|
|
|
+
|
|
|
+var options = {
|
|
|
+ template: '{{hi}}',
|
|
|
+ data: function () {
|
|
|
+ return {
|
|
|
+ hi: 'msg'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ready: function () {},
|
|
|
+ filters: {
|
|
|
+ that: function () {}
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function instanceWithOption () {
|
|
|
+ return new Vue(options)
|
|
|
+}
|
|
|
+instanceWithOption.desciption = 'instance with options'
|
|
|
+
|
|
|
+var Test = Vue.extend(options)
|
|
|
+function extendedInstance () {
|
|
|
+ return new Test()
|
|
|
+}
|
|
|
+extendedInstance.desciption = 'extended instances'
|
|
|
+
|
|
|
+function extendedInstanceWithOptions () {
|
|
|
+ return new Test({
|
|
|
+ data: function () {
|
|
|
+ return {
|
|
|
+ b: 'lol'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ready: function () {},
|
|
|
+ directives: {
|
|
|
+ that: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+extendedInstanceWithOptions.desciption = 'extended instances with options'
|
|
|
+
|
|
|
+bench(emptyInstance, 100)
|
|
|
+bench(emptyInstance, 1000)
|
|
|
+bench(emptyInstance, 10000)
|
|
|
+
|
|
|
+bench(instanceWithOption, 100)
|
|
|
+bench(instanceWithOption, 1000)
|
|
|
+bench(instanceWithOption, 10000)
|
|
|
+
|
|
|
+bench(extendedInstance, 100)
|
|
|
+bench(extendedInstance, 1000)
|
|
|
+bench(extendedInstance, 10000)
|
|
|
+
|
|
|
+bench(extendedInstanceWithOptions, 100)
|
|
|
+bench(extendedInstanceWithOptions, 1000)
|
|
|
+bench(extendedInstanceWithOptions, 10000)
|
|
|
+
|
|
|
+// TODO:
|
|
|
+//
|
|
|
+// - rendering performance
|
|
|
+// - simple v-repeat
|
|
|
+// - component v-repeat
|
|
|
+// - v-repeat with nested components
|
|
|
+//
|
|
|
+// - data observation performance
|
|
|
+// - simple objects
|
|
|
+// - complex objects
|
|
|
+// - small array
|
|
|
+// - large array
|
|
|
+//
|
|
|
+// - dependency tracking performance
|
|
|
+// - simple watcher
|
|
|
+// - complex watcher
|