рд╣рдордиреЗ рдЕрдкрдиреЗ рдПрдХ рдРрдк рдореЗрдВ рджреЗрдЦрд╛ рдХрд┐ рдПрдореНрдмрд░ v3.17.0 рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд╣рдорд╛рд░реА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ:
/ cc @pzuraq @rwjblue
рдПрдХ рдирдП рдирдП рдПрдореНрдмрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
__2.16.0__
__2.17.0__
рдХреНрдпрд╛ рдХреБрдЫ рд╡реЗрдВрдбрд░ рдЕрд▓рдЧ рд╣реБрдП рдФрд░ рдпрд╣ рдХреБрдЫ рдЧреНрд▓рд┐рдорд░-рд╡реАрдПрдо рдЕрдкрдбреЗрдЯреНрд╕ рдХреЗ рдХрд╛рд░рдг рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕реЗ https://github.com/glimmerjs/glimmer-vm/commit/4c56c216465410f5bf6f53fb7d4508f8048f09#diff -64c3cff3cf6c6 /16 ember.js / рдкреНрд░рддрд┐рдмрджреНрдз / 699439c0aaa1917754490efeb5751d10f77e5230
рдореБрдЭреЗ рднреАред
2.16.3
2.17.0
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ 2.16.3 рд╕реЗ 2.17.0 рддрдХ рд╣рдорд╛рд░реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдПрдХ ~ 5% рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рджреЗрдЦреАред
PS @ Turbo87 - рдХреНрдпрд╛ рдпрд╣ рдПрдЪрдмреАрдПрд╕ рдорд┐рдирд┐рдлрд╝рд╛рдпрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдпрд╣ рдЕрдкрдбреЗрдЯреЗрдб рдЧреНрд▓рд┐рдорд░ рд╡реАрдПрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ "рдЯреВрдЯ" рд╕рдХрддрд╛ рд╣реИ?
@ рдмреЛрд░рд┐рд╕-рдкреЗрдЯреНрд░реЛрд╡ - рдорди рдХреА рдЬрд╛рдБрдЪ рд╣рдорд╛рд░реЗ рд▓рд┐рдП? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдРрдкреНрд╕ рд╕реЗ рдорд┐рдирд┐рдлрд╝рд░ рдХреЛ package.json
рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ...
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЧреНрд▓рд┐рдорд░ рд╡рд╛рдпрд░рдлреЙрд░реНрдо рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛ рд░рд╣рд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрдк рдкрд░ рдПрдХ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/glimmerjs/glimmer-vm/blob/11cc83b2adf220bef298a1a6298c9e4e750c9b1/packages/%40glimmer/interfaces/lib/compile/wireat-.dat###
@rwjblue - рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ @krisselden рд╕рд╣реА рд╣реИ - рдЗрд╕рдХрд╛ ember-hbs-minifier
рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдирд┐рдореНрди рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рдПрдореНрдмрд░ рдРрдк рдЖрдЬрд╝рдорд╛рдпрд╛:
import Helper from '@ember/component/helper';
export default Helper.helper(() => true);
рдФрд░ рджреЛ рдШрдЯрдХ:
other-component.hbs
{{some-component foo=1}}
some-component.hbs
{{some-helper 1 2 3 @foo}}
3.16.3 рджреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрд┐рдд:
other-component.hbs
:
block: "{\"symbols\":[],\"statements\":[[1,[28,\"some-component\",null,[[\"foo\"],[1]]],false],[0,\"\\n\"]],\"hasEval\":false}",
some-component.hbs
:
block: "{\"symbols\":[\"@foo\"],\"statements\":[[1,[28,\"some-helper\",[1,2,3,[23,1,[]]],null],false],[0,\"\\n\"]],\"hasEval\":false}",
3.17 рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди:
other-component.hbs
:
block: "{\"symbols\":[],\"statements\":[[1,0,0,0,[31,2,14,[27,[26,0,\"CallHead\"],[]],null,[[\"foo\"],[1]]]],[1,1,0,0,\"\\n\"]],\"hasEval\":false,\"upvars\":[\"some-component\"]}",
some-component.hbs
:
block: "{\"symbols\":[\"@foo\"],\"statements\":[[1,0,0,0,[31,2,11,[27,[26,0,\"CallHead\"],[]],[1,2,3,[27,[24,1],[]]],null]],[1,1,0,0,\"\\n\"]],\"hasEval\":false,\"upvars\":[\"some-helper\"]}",
рдореИрдВ рдЗрд╕реЗ "рдмрдЧ" рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рдРрдк рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рдмрдбрд╝рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╛рдпрд░ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣рд╛рдВ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: https://github.com/glimmerjs/glimmer-vm/pull/972
рдЕрдВрдЧрд╛рд░ 3.16
- dist/assets/ember-observer.js: 706.89 KB (66.89 KB gzipped)
рдЕрдВрдЧрд╛рд░ 3.17
- dist/assets/ember-observer.js: 743.7 KB (69.63 KB gzipped)
рдХрд╛рдВрд╕реНрдЯреЗрдмрд▓ рдПрдирдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирдВрдмрд░
- dist/assets/ember-observer.js: 739.58 KB (69.44 KB gzipped)
рд▓реЛрдХрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдирд╛
- dist/assets/ember-observer.js: 723.55 KB (68.06 KB gzipped)
рдЪрдкрдЯрд╛ рд╣реЛ рдЬрд╛рдУ + GetPath + GetContextualFree рднрд╛рд╡
- dist/assets/ember-observer.js: 721.99 KB (68.04 KB gzipped)
рдореИрдВрдиреЗ рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдРрдкреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдкреИрдЪ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ
$ npx ember-template-size .
npx: installed 11 in 1.766s
{
'3.16.3': {
version: '3.16.3',
original: 793656,
compiled: 1223295,
brotli: 242598,
gzip: 242606
},
'3.17.0-patched': {
version: '3.17.0-patched',
original: 793656,
compiled: 1299096,
brotli: 258803,
gzip: 258826
},
'3.17.0': {
version: '3.17.0',
original: 793656,
compiled: 1624741,
brotli: 294760,
gzip: 294780
}
}
рдФрд░ https://github.com/rust-lang/crates.io рдХреЗ рд▓рд┐рдП :
{
'3.16.3': {
version: '3.16.3',
original: 73613,
compiled: 143264,
brotli: 32477,
gzip: 32608
},
'3.17.0-patched': {
version: '3.17.0-patched',
original: 73613,
compiled: 160526,
brotli: 34663,
gzip: 34803
},
'3.17.0': {
version: '3.17.0',
original: 73613,
compiled: 183711,
brotli: 36903,
gzip: 37070
}
}
рд╣рдорд╛рд░реЗ рд▓рд┐рдП:
{
'3.16.3': {
version: '3.16.3',
original: 281240,
compiled: 450040,
brotli: 98120,
gzip: 98142
},
'3.17.0-patched': {
version: '3.17.0-patched',
original: 281240,
compiled: 494042,
brotli: 105152,
gzip: 105178
},
'3.17.0': {
version: '3.17.0',
original: 281240,
compiled: 596287,
brotli: 117757,
gzip: 117784
}
}
рдкреИрдЪ рд╕рдмрд╕реЗ рдХрдо рд▓рдЯрдХрдиреЗ рд╡рд╛рд▓реЗ рдлрд▓ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдмрд╛рдХреА рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдХрд╛рд░рдг рдЬреЛ рдкреНрд░рддрд┐рдЧрдорди рдмрдбрд╝рд╛ рдерд╛ рдФрд░ рдХреБрдЫ рднрд╡рд┐рд╖реНрдп рдХреА рджрд┐рд╢рд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рд╕рдордп рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ 2 рдФрд░ рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд╕рдорддрд▓ рдХрд░реЗрдВ [рдкрд░рд┐рд╢рд┐рд╖реНрдЯ, 1 | 0, ...] рдореЗрдВ [TrustingAppend | рдкрд░рд┐рд╢рд┐рд╖реНрдЯ, ..] рдФрд░ рдлрд┐рд░ рддрд╛рд░ рдкреНрд░рд╛рд░реВрдк рдЯрдкрд▓ рд╣реИ рдЬреЛ рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ 0 рдХреЗ рдмрдЬрд╛рдпред
FYI рдХрд░реЗрдВ - https://github.com/emberjs/ember.js/pull/18941 рд╡рд┐рдХрд╛рд╕ рдХреЗ рдереЛрдХ рдХреЗ рдкрддреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред 3.16 (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рднреА ~ 3% рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
FYI рдХрд░реЗрдВ - https://github.com/emberjs/ember.js/pull/18941 рд╡рд┐рдХрд╛рд╕ рдХреЗ рдереЛрдХ рдХреЗ рдкрддреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред 3.16 (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рднреА ~ 3% рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред