Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
YUI 3.10.0 Go Fast @ericf
Slide 2
Slide 2 text
0 50,000 100,000 150,000 200,000 153,532 51,871 ops/sec 3.8.1 3.10.0pr1 Y.BaseCore
Slide 3
Slide 3 text
0 12,500 25,000 37,500 50,000 48,067 13,696 ops/sec 3.8.1 3.10.0pr1 Y.Base
Slide 4
Slide 4 text
0 2,750,000 5,500,000 8,250,000 11,000,000 10,810,890 2,330,865 ops/sec 3.8.1 3.10.0pr1 Y.Base#get()
Slide 5
Slide 5 text
0 100,000 200,000 300,000 400,000 332,063 74,202 ops/sec 3.8.1 3.10.0pr1 Y.Base#set()
Slide 6
Slide 6 text
0 7,500 15,000 22,500 30,000 28,722 12,900 ops/sec 3.8.1 3.10.0pr1 Y.MyModel w/ 2 ATTRS
Slide 7
Slide 7 text
0 150,000 300,000 450,000 600,000 531,777 261,855 ops/sec 3.8.1 3.10.0pr1 Y.EventTarget#publish()
Slide 8
Slide 8 text
0 1,500,000 3,000,000 4,500,000 6,000,000 5,139,582 839,048 ops/sec 3.8.1 3.10.0pr1 Y.EventTarget#fire() – 0L
Slide 9
Slide 9 text
0 100,000 200,000 300,000 400,000 351,084 160,905 ops/sec 3.8.1 3.10.0pr1 Y.EventTarget#fire() – 2LP
Slide 10
Slide 10 text
3.10.0pr1 http://stage.yuilibrary.com/
Slide 11
Slide 11 text
3.10.0pr1 http://stage.yuilibrary.com/
Slide 12
Slide 12 text
Back-Compat Known “Issues”
Slide 13
Slide 13 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } });
Slide 14
Slide 14 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } });
Slide 15
Slide 15 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo();
Slide 16
Slide 16 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.ATTRS.baz = {value: 'baz'};
Slide 17
Slide 17 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.ATTRS.baz = {value: 'baz'}; var foo2 = new Y.Foo();
Slide 18
Slide 18 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.ATTRS.baz = {value: 'baz'}; var foo2 = new Y.Foo(); Y.log(foo2.get('baz')); // undefined
Slide 19
Slide 19 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.ATTRS.baz = {value: 'baz'}; var foo2 = new Y.Foo(); Y.log(foo2.get('baz')); // undefined
Slide 20
Slide 20 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.ATTRS.baz = {value: 'baz'}; var foo2 = new Y.Foo(); Y.log(foo2.get('baz')); // undefined
Slide 21
Slide 21 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.modifyAttrs({ baz: {value: 'baz'} }); var foo2 = new Y.Foo(); Y.log(foo2.get('baz')); // undefined
Slide 22
Slide 22 text
Touching ATTRS Y.Foo = Y.Base.create('foo', Y.Base, [], {}, { ATTRS: { bar: {value: 'bar'} } }); var foo1 = new Y.Foo(); Y.Foo.modifyAttrs({ baz: {value: 'baz'} }); var foo2 = new Y.Foo(); Y.log(foo2.get('baz')); // "baz"
Slide 23
Slide 23 text
Three-Pronged 1) Attribute 2) Base 3) Custom Event
Slide 24
Slide 24 text
2 More Things… Go Faster
Slide 25
Slide 25 text
2 More Things… 1) Short-Circuit Event. 2) Filter ATTRS Statically.
Slide 26
Slide 26 text
0 20,000 40,000 60,000 80,000 71,255 13,696 ops/sec 3.8.1 3.10.0pr1++ Y.Base
Slide 27
Slide 27 text
0 375,000 750,000 1,125,000 1,500,000 1,172,805 74,202 ops/sec 3.8.1 3.10.0pr1++ Y.Base#set()
Slide 28
Slide 28 text
Go Test 3.10.0pr1 Questions? @ericf