Pixi.js: рдЬреАрдПрд▓-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЬреВрди 2017  ┬╖  39рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рдпрд╣ рд╡рд┐рдзрд░реНрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдлреЗрдВрдХ рджреВрдВрдЧрд╛ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреВрдиреА рд╣рддреНрдпрд╛ рдЪрд┐рд▓реНрд▓рд╛рдиреЗ рджреВрдВрдЧрд╛ ... рдХреНрдпрд╛ рд╣рдордиреЗ рдХрднреА рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд░ рдорд╛рдирдХреАрдХрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рд╡рд╕реНрддреБ рдЖрдзрд╛рд░рд┐рдд рдХреЗ рдмрдЬрд╛рдп рд╕рд░рдгреА рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ? рд╡реЗрдмрдЬреАрдПрд▓ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реАрд░реНрд╖/рдмрдирд╛рд╡рдЯ/рдЖрджрд┐ рдПрдкрд┐рд╕ рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореМрдЬреВрджрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЙрдбреНрдпреВрд▓ рднреА рд╣реИрдВ рдЬреЛ рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рдпрд╛ рджреЗрд╢реА рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдорд╛рдирдХреАрдХреГрдд рд╣реИрдВ (рдЬреИрд╕реЗ, https://github.com/toji/gl-matrix) gl-matrix рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЭрдВрдбреЗ рдХреЗ рдкреАрдЫреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ SIMD рд╕рдорд░реНрдерди рд╣реЛрддрд╛ рд╣реИ , рдФрд░ рдЬрд▓реНрдж рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, gl-matrix рдЕрдм рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред)

рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдкрд┐рдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ ...

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@GoodBoyDigital рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рджреЛрд╕реНрдд рд╢реНрд░реАрдорддреА рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рдЧреВрдЧрд▓, рдореИрдВ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ:

https://stackoverflow.com/questions/15823021/when-to-use-float32array-instead-of-array-in-javascript

рд╢реАрд░реНрд╖ рд░реЗрдЯреЗрдб рдЙрддреНрддрд░ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ 44 рд╡реЛрдЯреЛрдВ рдкрд░) рдЙрдЪрд┐рдд рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

рд╕рднреА 39 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

1) SIMD рдорд░ рдЪреБрдХрд╛ рд╣реИред https://github.com/rwaldron/tc39-notes/blob/a66df6740eec3358d5e24f81817db99d6ee41401/es8/2017-03/mar-21.md#10if -simdjs-status-update

2) рд╕рд░рд▓ 6 рдлрд╝реАрд▓реНрдб "рдП, рдмреА, рд╕реА, рдбреА, рдЯреАрдПрдХреНрд╕, рдЯреАрд╡рд╛рдИ" рдлреНрд▓реЛрдЯ32рдПрд░реЗ (9) рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рднреА рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди I рдФрд░ @GoodBoyDigital рджреЛрдиреЛрдВ рдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред

3) рдЬреЗрдПрд╕ рдбрдмрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрдбрд╝реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП "рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдПрдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо" рдФрд░ рдЬреЗрдПрд╕ рдкрдХреНрд╖ рдкрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмреЗрд╣рддрд░ рд╣реИрдВред

рдореИрдВ v5 рдореЗрдВ рдПрдХ Float32Array(9) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдореЗрд░реЗ jsperf рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдерд╛ рдпрджрд┐ рд╕рдорд╛рди perf рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ toArray рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

https://github.com/pixijs/pixi.js/blob/455c059e8d155c1d9a05fc2ece2c02b3bdf8bf84/plugins/core/src/math/Matrix.js

gl-matrix рдлрд╛рдпрджреЗрдордВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рд┐рдо рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╡рд╛рди рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореГрдд рдХрд▓реНрдкрдирд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднреА рдЧрд┐рд░рд╛рд╡рдЯ рдЖрдИ рд╣реИред рд╣рдо GPU рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ 3x3 рдореИрдЯреНрд░рд┐рдХреНрд╕ ( Float32Array(9) ) рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдЧрдгрдирд╛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 2D рдореИрдЯреНрд░рд┐рдХреНрд╕ рдерд╛ред gl-matrix рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред

V5 рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реАрдзреЗ GPU рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рд╣реА рдХреЗрд╡рд▓ рдЙрди 2D рднрд╛рдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдо рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ SharedArrayBuffers рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╡реЗрдмрд╡рд░реНрдХрд░реНрд╕ рдкрд░ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@englercj рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ Math.found рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреВрд░реНрдг рдлреНрд▓реЛрдЯ64рдПрд░реЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдореИрдВ рдЗрд╕реЗ Float64Array рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╣рдореЗрдВ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓-рдкреНрд░реЗрд╕рд┐рдЬрди рдореЗрдВ рдбрд╛рдЙрдирд╕рд╛рдЗрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдЬрдм рд╣рдо GPU рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрдкрд▓реЛрдб рдХрднреА рднреА рд╣рдорд╛рд░реА рдЕрдбрд╝рдЪрди рдирд╣реАрдВ рдереА, рд╣рдо рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ "uniform3fv" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдбреНрд░реЙрдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдмрдбрд╝рд╛ рдмрдлрд░ рдЕрдкрд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рд╣реИрд╡реА рдкрд┐рдХреНрд╕реА рдРрдк рдкреНрд░рддрд┐ рдлреНрд░реЗрдо рд▓рдЧрднрдЧ 400 рдбреНрд░реЙрдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ,

рдмрдбрд╝реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрдм рддрдХ рд╣рдо рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ, рдореИрдВ рд╕рдм рдХреБрдЫ рдбрдмрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдП, рдмреА, рд╕реА, рдбреА, рдЯреАрдПрдХреНрд╕, рдЯреАрд╡рд╛рдИ" рдЕрдВрдХрди "0,1,3,4,6,7" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реАрдврд╝ рдХреА рд╣рдбреНрдбреА рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдКрдкрд░ рдмрд╣реБрдд рдкрд░рд┐рд╖реНрдХреГрдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рд╛ред

рдпреВрдкреАрдбреА. рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдорджрдж рдХрд░реЗрдЧрд╛: https://github.com/gameofbombs/gobi/blob/master/src/core/math/FlatTransform2d.ts , рдЬреЛ рдХрд┐ "рдлреНрд▓реИрдЯ" рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдПред

рдпреВрдкреАрдбреА2. рд▓реЗрдХрд┐рди 3рдбреА рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рдлреНрд▓реЛрдЯ32рдПрд░реЗ(16) рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рдмреЛрд▓реВрдВрдЧрд╛ред

рдореЗрд░рд╛ рд╡реЛрдЯ рдЙрд╕реА рдХреЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреЗрдЬ рдХрд┐рдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ 100% рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рд╕рдЪ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реЛрдЧрд╛!

3рдбреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдЧреНрд▓реЛ-рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╢реИрд▓реА рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддрд╛ рд╣реВрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрдм GPU рдкрд░ рд╕рд╛рдорд╛рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдкрд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ! рдкрд┐рдХреНрд╕реА рдХреЗ рд╕рд╛рде рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЬреЗрдПрд╕ рднреВрдорд┐ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реЗрд░рдлреЗрд░ рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмреИрдЪрд░)ред

https://jsperf.com/obj-vs-array-view-access/1

рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред рд╡рд╕реНрддреБ Float32Array рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдореА рдЬреЛ рджреЛрдиреЛрдВ рдХреЗ рдзреАрдореА рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рд╕реЗ рд╣реЛрддреА рд╣реИред рдлрд┐рд░ рд╣рдореЗрдВ рдбрдмрд▓ рдкреНрд░рд┐рд╕рд┐рдЬрди рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬ рд╕реАрдкреАрдпреВ рд╕реНрдкреАрдб рдорд┐рд▓рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Array рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдерд╛, рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ?

рдореЗрд░рд╛ рд╡реЛрдЯ рдЙрд╕реА рдХреЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреЗрдЬ рдХрд┐рдпрд╛ рдерд╛ред

рд╡реЛ рдмрд╣реБрдд рд░реБрдЪрд┐рдХрд░ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рд╕реЗ рддреЗрдЬрд╝ рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реАрдПрдо рдХрдИ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЬрд╛рдирдХрд░ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕ рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ _why_ рд╡рд╕реНрддреБрдПрдВ рддреЗрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ?

рдореЗрд░реЗ COMP рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдо (i7, Windows 10):

рдХреНрд░реЛрдо 59:

image

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 54.0.1 (32-рдмрд┐рдЯ):

image

рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдЬ 40.15063.0.0:

image

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Array рдХрд╛ рдореЗрд░рд╛ рдХреНрд░реЛрдо рдкрд░рд┐рдгрд╛рдо рддреЗрдЬ рд╣реЛрдирд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдерд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрдм рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИред рдпрд╣ рд▓рдЧрднрдЧ 50 рдПрдо рдСрдкреНрд╕/рдПрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд░рди рдкрд░ 500 рдПрдо рдСрдкреНрд╕/рдПрд╕ рдерд╛ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛ред рдЕрдЬреАрдм...

рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, Float32Array рд╕рджрд╕реНрдп рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдорд╛рди рдЧрддрд┐ рдпрд╛ рддреЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ (рдпрд╛ рддреЗрдЬ) рдХреА рддрд░рд╣ рд╣реА рдЧрддрд┐ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рднрд░рдиреЗ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдлреНрд▓реЛрдЯ 64 рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? :)

рдореБрдЭреЗ рдкреНрд░рддрд┐ рдбреНрд░реЙрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИред

рд╕рд╛рде рд╣реА, рд╣рдо рдЗрдирд╡рд░реНрдЯ рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдбреЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо() рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдореБрдЭреЗ рдкреНрд░рддрд┐ рдбреНрд░реЙрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИред

Float64Array рдЙрдЪреНрдЪ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреИрд╕реА рд╣реИ? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ, рд╣рдо рд╡реИрд╕реЗ рднреА рдПрдХрд▓-рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╛рде рд╣реА, рд╣рдо рдЗрдирд╡рд░реНрдЯ рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдбреЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо() рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдпрд╣ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрд╢рдиред

рдореБрдЭреЗ рдкреНрд░рддрд┐ рдбреНрд░реЙрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИред

рдореИрдВ рднреА рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╕рд░рдгреА рдЖрдзрд╛рд░рд┐рдд рдореИрдЯреНрд░рд┐рд╕реЗрд╕, рдкреЙрдЗрдВрдЯреНрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдкрд░ "рдорд╛рдирдХреАрдХрд░рдг" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдореИрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬреЗрдПрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕/рд╡реЗрдХреНрдЯрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рддрд┐рдкрд╛рджрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдмрдбрд╝реЗ рд╕рдордп рдХреА рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдЬреАрдд рдХреЗ рд▓рд┐рдПред

рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣реИ,
рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдСрдкрд░реЗрд╢рдиред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреБрдо рджреЛрдиреЛрдВ рд╕рд╣реА рд╣реЛред рдпрд╣ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╡рд╛рди рдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ; рдЕрдЧрд░ updateTransform() рднрд╛рд░реА рдСрдкрд░реЗрд╢рди рд╣реИ, рддреЛ рдпрд╣ рджреЗрдЦрдирд╛ рдордЬрдмреВрд░реА рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реВрдХреНрд╖реНрдо рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╣реИ; рдЗрди рд╕реНрдерд┐рд░ рдбреЗрдЯрд╛ рд╕реЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реАрдПрдордПрд╕ рдореЗрдВ рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рд╣реЛрдЧрд╛ (рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рдХреАрдордд рдкрд░ред)

рдореИрдВ рднреА рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╕рд░рдгреА рдЖрдзрд╛рд░рд┐рдд рдореИрдЯреНрд░рд┐рд╕реЗрд╕, рдкреЙрдЗрдВрдЯреНрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдкрд░ "рдорд╛рдирдХреАрдХрд░рдг" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдореИрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдЬреЗрдПрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕/рд╡реЗрдХреНрдЯрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рддрд┐рдкрд╛рджрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдмрдбрд╝реЗ рд╕рдордп рдХреА рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдЬреАрдд рдХреЗ рд▓рд┐рдПред

рдореИрдВ "(рдП, рдмреА), (рд╕реА, рдбреА), (рдЯреАрдПрдХреНрд╕, рдЯреАрд╡рд╛рдИ)" рдбрдмрд▓-рд╕рдЯреАрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реВрдВ, рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд▓реЛрдЯ32рдПрд░реЗ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдФрд░ "рдкреЙрдЬрд╝рдПрдХреНрд╕, рдкреЙрдЬрд╝реА, рдкрд┐рд╡реЛрдЯрдПрдХреНрд╕, рдкрд┐рд╡рдЯрд╡рд╛рдИ, рд╕реНрдХреЗрд▓рдПрдХреНрд╕, рд╕реНрдХреЗрд▓рд╡рд╛рдИ, рд╢реАрдпрд░рдПрдХреНрд╕, рд╢реАрдпрд░рд╡рд╛рдИ, рд░реЙрдЯрдЬреЗрдб"ред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╡реИрд╕реЗ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рд╕реНрдЯрд░ рдкрд┐рдХреНрд╕реА рдореЗрдВ рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрд░реЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ред рд╡рд╣ рдореЗрд░рд╛ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рд╡реАрд╕реА рдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдпрд╛ рджреЛ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

Float64Array рдЙрдЪреНрдЪ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреИрд╕реА рд╣реИ? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ, рд╣рдо рд╡реИрд╕реЗ рднреА рдПрдХрд▓-рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдЕрдкрдбреЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо (рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рджреНрд╡рд╛рд░рд╛ рдХреИрдорд░рд╛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрди рдкрд░ рддрднреА рдлрд┐рдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЫреЛрдЯрд╛ рд╣реЛ, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреИрдорд░рд╛ рд╕реНрдерд┐рддрд┐ рджреЛрдиреЛрдВ рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди:

1) рдЙрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЧрдгрдирд╛ рдХрд░реЗрдВред PIXI рдХреЗрд╡рд▓ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
2) рджреБрдирд┐рдпрд╛ рдХреЛ рдмрдбрд╝реЗ рдХреЛрд░реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рдЫреЛрдЯреЗ рдХреЙрд░реНрдб рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдм-рдкрд┐рдХреНрд╕реЗрд▓ рдХреИрдорд░рд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ => рдХреИрдорд░рд╛ рдХреЛ рдмрдбрд╝реЗ рдФрд░ рдЫреЛрдЯреЗ рдХреЙрд░реНрдб рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдордЬрдмреВрд░ рдХрд░рдирд╛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рд╕рд┐рд░рджрд░реНрдж рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рд╡реАрд╕реА рдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдпрд╛ рджреЛ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЕрдиреБрдХреВрд▓рди рджреЛрдиреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╣реИрдВред рдФрд░ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг, рдбреАрдПрд╕рдПрд▓-рдПрд╕ред рд╣рдореЗрдВ рдПрдХ рдРрд╕реЗ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рд╣рдо рд╕рднреА рдХреЛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд╕реНрддрд░ рдкрд░ рд╕рдВрддреБрд╖реНрдЯ рдХрд░реЗред

рдкрд┐рдЫрд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде рдкрд┐рдХреНрд╕реА (v3 рдФрд░ v4 рдХреЗ рд▓рд┐рдП) рдХреЗ рджреЛ рдХрд╛рдВрдЯреЗ рдмрдирд╛рдП, рдореИрдВ "рдкрд┐рдХреНрд╕реА-рд╕реНрдкрд╛рдЗрди" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрдкрдирд╛ рдЙрдиреНрдирдд рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд╣реИ рдФрд░ рдореИрдВ рддреАрд╕рд░рд╛ рдХрд╛рдВрдЯрд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред "рдкрд┐рдЫрд▓реЗ рдЗрд╡рд╛рди" рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рд░рдгреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд░реВрдк рд╣реИ рдФрд░ "рдЧреНрд▓-рдореИрдЯреНрд░рд┐рдХреНрд╕" рд╣реИред

рдореИрдВ @ivanpopelyshev рд╕реЗ рд╕рд╣рдордд

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ Float64Array рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ, рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ Float32Array рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдк-рдПрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреЛрд░реЗрдЬ рдмреИрдХрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡реЗрдмрд╡рд░реНрдХрд░ рд╕реЗ/рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Float64Array рдпрд╣ рддрдм рд╣реИ, рдореБрдЭреЗ рдмрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ (0,1), (3,4), (6,7) рдПрдХреНрд╕, рд╡рд╛рдИ, рдЕрдиреБрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ

рд╕рднреА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рд╣рдорд╛рд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд┐рдХреНрд╕реА рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ - рдмрдиреНрдиреАрдорд╛рд░реНрдХ рдЬреИрд╕рд╛ рдХреБрдЫред

рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдФрд░ @ivanpopelyshev рдиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдмрдиреА рдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП gl-matrix рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рд╛ (рдЬреИрд╕реЗ рддреАрд╕рд░рд╛ рдзреАрдорд╛!)

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝реА рджреЗрд░ рдкрд╣рд▓реЗ рдХреА рдмрд╛рдд рд╣реИ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдЧрд▓рдд рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛!
рдпрджрд┐ рдЧрддрд┐ рдЕрдВрддрд░ рдЕрдм рдирдЧрдгреНрдп рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдорд╛рд░реНрдЧ рдЗрдХреНрдХрд╛ рд╣реЛрдЧрд╛ред

рдкрд┐рдХреНрд╕реА рд╕реНрдкреАрдб рд╣реИ: рдкреА рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдЕрднреА рднреА Float64Array рдХреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЗрд╡рд▓ рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдЧреБрдг рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВред

рдПрдХ рдФрд░ рдмрд╛рдд: @mreinstein , рдореБрдЭреЗ рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкреЗрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдпрд╣ рдкреЗрдкрд░.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рд╣реИ, рд╕реАрдзреЗ рднрд╛рд╖рд╛ рдореЗрдВ рдмрд┐рдВрджреБ рд╕рдВрдЪрд╛рд▓рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ JS рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪреАрдиреА рд╣реИ, рддреЛ рд╣рдо рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдпрд╣ рдЕрджреНрдпрддрди рдмрдиреАрдорд╛рд░реНрдХ? рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдордп рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

рдореБрдЭреЗ рдпрд╣рд╛рдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред рдкрд░рд┐рдгрд╛рдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдпрджрд┐ рд╕рд░рдгреА рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдЕрднреА рднреА рдмрд╣реБрдд рдзреАрдореА рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдкреАрдЫреЗ _why_ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВред

рдлрд┐рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рдд: рдкрд░рдл рдЯреЗрд╕реНрдЯрд┐рдВрдЧ...рдХреНрд░реЛрдо рдХреЗ v8 рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ (v59 рдореЗрдВ) v8 рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдирд╛рдЯрдХреАрдп рдмрджрд▓рд╛рд╡ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЯрд░реНрдмреЛрдлреИрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рд╣реИрдВред

https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html

рдЯрд░реНрдмреЛрдлреИрди рдХреЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЕрдкрдбреЗрдЯреЗрдб рдмрдиреАрдорд╛рд░реНрдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдПред

@GoodBoyDigital рдореИрдВрдиреЗ

https://jsperf.com/obj-vs-array-view-access/1
image

рдХреЗрд╡рд▓ рдПрдЬ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдкреАрдб рдлреНрд▓реЛрдЯ64рдПрд░реЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ/рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░реАрдм рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдирд╡реА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ ... рдХреНрдпрд╛ рдмрдХрд╡рд╛рд╕ рд╣реИ ?! рдлреНрд▓реЛрдЯ 64 рд╕рд░рдгреА рд╕рдордХрдХреНрд╖ рдлреНрд▓реЛрдЯ 32 рд╕рд░рдгреА рд╕рдВрдЪрд╛рд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬ рдХреНрдпреЛрдВ рдкрдврд╝/рд▓рд┐рдЦреЗрдЧреА? рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ 64 рдмрд┐рдЯ рдлреНрд▓реЛрдЯ рд╢рдмреНрдж рд╕реАрдорд╛рдУрдВ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рд╣реИрд░рд╛рди рд╣реВрдБред

рдкреНрд░рд╕реНрддрд╛рд╡ @mreinstein рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрджрд┐ рдЖрдк рд╣рдореЗрдВ рдХреБрдЫ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реА рдмрд╣рд╕ рдХреЛ рдардВрдбреЗ рдХрдареЛрд░ рддрдереНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрд┐рд╕реНрддрд░ рдкрд░ рдбрд╛рд▓ рджреЗрдВрдЧреЗ!

рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдлреЛрд░реНрдХ рдкрд┐рдХреНрд╕реА рд╣реИ рдФрд░ рдлрд┐рд░ рдЧреНрд▓реЛ -рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛

рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреНрд╡реАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╣рдо рдпрд╣рд╛рдВ рдкрд░рдл рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://pixijs.github.io/bunny-mark/
рд╣рдо рд╡рд┐рднрд┐рдиреНрди рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@englercj рдХрдорд╛рд▓ рд╣реИ рдпрд╛рд░! рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦрдирд╛ рдЙрддреНрд╕рд╛рд╣рдЬрдирдХ рд╣реИред рдХреНрдпрд╛ v5 рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдРрд╕реЗ рд░рд╛рдЬреНрдп рдХреЗ рдкрд╛рд╕ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдмрдиреА рдорд╛рд░реНрдХ рдХреЛ рд╕реНрдкрд┐рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

@mreinstein рд╕рд┐рд░реНрдл рдПрдХ рдХреВрдмрдбрд╝, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 64 рдмрд┐рдЯ -> 32 рдмрд┐рдЯ рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ 64 рдмрд┐рдЯ рд╕рд╣реА рд╣реИ?

@GoodBoyDigital рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рджреЛрд╕реНрдд рд╢реНрд░реАрдорддреА рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рдЧреВрдЧрд▓, рдореИрдВ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ:

https://stackoverflow.com/questions/15823021/when-to-use-float32array-instead-of-array-in-javascript

рд╢реАрд░реНрд╖ рд░реЗрдЯреЗрдб рдЙрддреНрддрд░ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ 44 рд╡реЛрдЯреЛрдВ рдкрд░) рдЙрдЪрд┐рдд рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдареАрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИред :)

рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬ рд╣реИ рдлреЛрд░реНрдХ рдкрд┐рдХреНрд╕реА

@GoodBoyDigital @englercj рдЗрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдХрд╛рдВрдЯрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╢рд╛рдЦрд╛ рдХреМрди рд╕реА рд╣реИ?

рдлрд┐рд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЛ рдЧреНрд▓реЛ -рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рдмрджрд▓реЗрдВ ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмреИрдЪ рдХреЛ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ - рдкреВрд░реЗ рдЗрдВрдЬрди рдХреЛ рдирд╣реАрдВ!

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рд╕рд┐рд░реНрдл рдкреВрд░реНрдг рдмреЗрдВрдЪ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдЗрдВрдЬрди рдХреЛ рдЧреНрд▓реЛ-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ... рдореБрдЭреЗ https://github.com/pixijs/bunny-mark рдореЗрдВ рдХреЛрдИ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмреИрдЪ рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ PIXI.Container рдореВрд▓ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЦрд░рдЧреЛрд╢ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ pixi.container, pixi.sprite рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдкреАрдЫреЗ рдХреА рдУрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рднреА рдЬрдЧрд╣реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдкреЗрдбрд╝ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд╣рд╛рдВ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ? рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рдХрд┐ рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ, рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд░рдгрдиреАрддрд┐ рд╣реИред

рдЕрдкрдбреЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рдЕрдВрджрд░ рджреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рд╣реИрдВ:

  1. рд╕реНрдерд┐рддрд┐, рдзреБрд░реА, рдкреИрдорд╛рдиреЗ, рд░реЛрдЯреЗрд╢рди рд╕реЗ рд╕рдВрд░рдЪрдирд╛ - рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  2. рдореВрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ - рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ Float64Array рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдкреБрд░рд╛рдиреЗ "рдП, рдмреА, рд╕реА, рдбреА, рдЯреАрдПрдХреНрд╕, рдЯреАрд╡рд╛рдИ" рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдкрдбреЗрдЯ рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, @mreinstein рдиреЗ рдХреЛрд░ рдореЗрдВ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЪреАрдЬреЗрдВ

рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╢рд╛рдЦрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ рдФрд░ рдЦреЗрдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред

рдЙрд╕ рддрдХ рд╕рднреА рдХреА рдкрд╣реБрдВрдЪ рд╣реИ, рдХрд╛рдВрдЯрд╛ + рдкреАрдЖрд░ рд╡рд╣ рд╕рдм рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдмрдиреА рдорд╛рд░реНрдХ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ..рдЬрдм рдореИрдВ рдХреНрд░реЛрдо рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рдЦрд╛рдУрдВ (рджреЗрд╡, рд░рд┐рд▓реАрдЬ, рдЕрдиреНрдп) рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ 100k рдмрдиреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ 10-16fps рдорд┐рд▓рддрд╛ рд╣реИред 8.75 рд╕реЗ рдЕрдзрд┐рдХ рдЪрд▓ рд░рд╣реЗ рдХреЛрдб рдкрд░ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛:

screen shot 2017-07-02 at 11 58 03 am

рд▓рдЧрднрдЧ рд╕рд╛рд░рд╛ рд╕рдордп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рдореЗрдВ рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИред

screen shot 2017-07-02 at 11 57 50 am

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд┐рддрд╛рдП рдЧрдП рдЗрд╕ рд╕рдордп рдореЗрдВ рд╕реЗ рд╢реЗрд░ рдХрд╛ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Sprite.calculateVertices() рдореЗрдВ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред TransformStatic.updateTransform() рдореЗрдВ рдЦрд░реНрдЪ рдХреА рдЧрдИ

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдореБрдЭреЗ рдлреНрд░реИрдорд░реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛрдЧреБрдирд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХрд╛ рдЯреВрдЯрдирд╛ рд╕рдорд╛рди рд╣реИ; calculateVertices() рджреЛрдиреЛрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдмрдиреАрдорд╛рд░реНрдХ рд░рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рдЦрд░рдЧреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдФрд░ рдЬрд┐рд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рджреЛ рдЬрдЧрд╣реЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: upateTransform() рдЧреБрдгрди рдХреЗ рд▓рд┐рдП рдФрд░ рдлреНрд▓рд╢() рдПрдХ рдмрд╛рд░ рдкреНрд░рддрд┐ рдХреЙрд▓ред рдпрд╣ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред

рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВред :( рдореИрдВ рдЙрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рд╢реБрджреНрдз рдПрдлрдкреАрдПрд╕ рд╣рд╛рд╕рд┐рд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рд╣реИ, рддреЛ рдореЗрд░реА рдлреНрд░реЗрдо рджрд░ рдХреЛ рд╢рд┐рдЦрд░ рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ _severely_ рдереНрд░реЙрдЯрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЪрд┐рдкрдХрд╛рдП рдЧрдП рдкрд╣рд▓реЗ рдЖрд░реЗрдЦ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдКрдкрд░, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреБрд▓ рдлрд╝реНрд░реЗрдо рд╕рдордп рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрд╢ рд╣реИред рд╡рд░реНрдЯреЗрдХреНрд╕ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдЕрдкрдбреЗрдЯ рдХреБрд▓ рдлрд╝реНрд░реЗрдо рд╕рдордп рдХреЛ рднрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИ, рдФрд░ рдПрдлрдкреАрдПрд╕ рдпрд╣ рдорд╛рдк рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд┐рдХреНрд╕реА рдмрд┐рд▓реНрдб рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рд╣реИ, рддреЛ рдореИрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдирд┐рд░реНрдорд╛рдг рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдорд╛рдирджрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ?

рдЗрд╕реЗ рдпрд╛ рддреЛ рд╕реАрдкреАрдпреВ рдкрд░ рдпрд╛ рддреЛ рдЬреАрдкреАрдпреВ рдХреА рддрд░рдл рд╕реЗ рдереНрд░реЙрдЯрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ),

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдлрдкреАрдПрд╕ 60 рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ рд▓реЗрдХрд┐рди "рдирд┐рд╖реНрдХреНрд░рд┐рдп" рдмрдбрд╝рд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдЬреАрдкреАрдпреВред

рдпрджрд┐ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рд╕реАрдкреАрдпреВред

рдХреИрд▓рдХреБрд▓реЗрдЯ рд╡рд░реНрдЯрд┐рд╕ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рд╣реИ - рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдЪрд╛рд░ рдХреЛрдиреЛрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░реЗрдВред

рдЯреАрдПрд╕ рдХрд╛рдВрдЯрд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рдЪрд╛рд░: рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рдЧреБрдгреЛрдВ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдЗрд╕рдХреА рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЯреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЙрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ :(

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреИрдмреЗрд▓ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЪрд░ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдвреВрдВрдврддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

Alt text

рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛: рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдЗрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рд▓рдХреНрд╖реНрдп рдпрд╣ рджреЗрдЦрдирд╛ рдерд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдо рдЧреНрд▓реЛ-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░рдлрд╝ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд░рдгреА рдорд╛рдорд▓реЛрдВ рд╕реЗ рднреА рдмрджрддрд░ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдпрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд┐рдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдмрдиреА рдЪрд┐рд╣реНрди рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдпрд╛ рд╣реИред рдХреНрд░реЛрдо рдореЗрдВ,> рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдХреБрд▓ рд╕рдордп рдХрд╛ 50% Sprite.calculateVertices() (40% ish) рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж TransformStatic.updateTransform() (11% ish) рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рджреЛ рдмрд╛рд░ рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрдкрд╛рдд рдЙрди 2 рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдЕрднреА рднреА рд╕реБрд╕рдВрдЧрдд рд╣реИред

рдореИрдВ рд╡рд┐рд╖рдп рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдмрдиреАрдорд╛рд░реНрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ es5 рдЧреЗрдЯрд░реНрд╕/рд╕реЗрдЯрд░реНрд╕ рдХреЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдХреНрд░реЛрдо рдореЗрдВ perf рдбреНрд░реЙрдк рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https: //jsperf.com/es5-getters-setters-versus-getter-setter-methods/10

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдпрд╣рд╛рдВ рд╕реБрд╕реНрддреА рд╕реЗ рдШреВрдо рд░рд╣рд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдореИрд╕реЗрдЬ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реЗрдореА-рд░рд┐рдпрд▓ рдЯрд╛рдЗрдо рдореЗрдВ рдЪреИрдЯ рдХрд░рдирд╛ рдЬреНрдпрд╛рджрд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдЖрдк @mreinstein рдХреЛ рдХреНрдпрд╛ рдИрдореЗрд▓

@englercj рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдорд╛рдкрдиред

рдмрд╕ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдкрдбреЗрдЯ: рдореЗрд░реЗ рдкрд╛рд╕ рдлреНрд▓реЛрдЯ64рдПрд░реЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд https://github.com/pixijs/pixi-projection/blob/master/src/Matrix2d.ts рдореЗрдВ 3x2 рдХреЗ рдмрдЬрд╛рдп 3x3 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕