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

рдФрд░, рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдзреНрд╡рдирд┐ рдбрд┐рдЬрд╛рдЗрди рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрджрд┐ рдпрд╣ рд╕рдордп рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдЯреАрдХ рд╣реИ, рддреЛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЖрд╡рд╛рдЬрд╝реЗрдВ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдорд▓реНрдЯреАрдЪреИрдирд▓ рд╕рд┐рд╕реНрдЯрдо рд▓рдЧрддрд╛ рд╣реИред
рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рд╡реЗрдм рдСрдбрд┐рдпреЛ рдФрд░ рдЧреЗрдордкреНрд▓реЗ рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; javasctipt (рддреАрди!) рдореЗрдВ рдХрд┐рддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рдШрдВрдЯреЗ" рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рд╕рд╛рде рд╣реА рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рд╣реИрдВ ред
рдШрдбрд╝реА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдХрд┐рд╕реА рднреА рд╕рд╢рд░реНрдд рдСрдирд▓рд╛рдЗрди рдорд╛рд▓рд╛ рдХреЗ рд▓рд┐рдП, рд╕рдЯреАрдХ рдШрдбрд╝реА рддреБрд▓реНрдпрдХрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдк рдХрд┐рд╕реА рднреА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдВрддрд░рд╛рдпрд┐рдХ) рдиреЗрдЯрд╡рд░реНрдХ рджреЗрд░реА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рдордп рдЯрд┐рдХрдЯ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдг рдХрдорд╛рдВрдб рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рдЗрди рдХрдорд╛рдВрдбреЛрдВ рдХреЛ "рднрд╡рд┐рд╖реНрдп рдореЗрдВ" рдереЛрдбрд╝рд╛ рд╕рд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╛ рдЖрдк рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдЧреЗ рднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдирд┐рд░реНрдзрд╛рд░рдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ-рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓реЗрдВ рдФрд░ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреАрдЬ (рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╛рд░ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╕рдЯреАрдХ рд╕рдордп рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд░рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛред рдмреАрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА (рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдЕрдирдВрдд) рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА "рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ" рдкрд╣рд▓реЗ рд╕реЗ рд╣реЛрддреА рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рд╕рдЯреАрдХ рд╕рдордп рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреА рдЕрдкрдиреА рд╕реАрдорд╛ рд╣реИред рддреНрд╡рд░рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдпрд╣ "рдЬреИрд╕рд╛ рд╣реИ" рдЗрд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреА рд╣реИред рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореИрдВ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рддреАрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рд╡рд┐рд╖рдп "рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ"
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ "рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ" рдзреНрд╡рдирд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╕рдВрдпреБрдХреНрдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ of 10 рдПрдордПрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рд╕реЗ рдРрд╕реА рд╕рдЯреАрдХрддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдирдЯреАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордп рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рддрд░реАрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ рдЪрд▓рд╛рдПрдВрдЧреЗред рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ: рд╣реЗрд▓рдореЗрдЯ "рдкрд┐рдВрдЧ" рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдЯрд╛рдЗрдо рд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рде "рдкреЛрдВрдЧреНрд╕" рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕реНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдФрд╕рдд рд╡рд┐рд▓рдВрдм рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдб: рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рд░реНрд╡рд░ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрдмрд╕реНрдХреИрдЯ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдк рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ UDP рдпрд╛ ICMP рдирд╣реАрдВ, рд▓реЗрдХрд┐рди HTTP API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдардВрдбреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрддреБрд▓рдиреАрдп рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реЙрдХреЗрдЯ.рдЖрдИрдУред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:
рдХреЛрдб: socket.io рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдФрд╕рдд рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдФрд╕рдд рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - рдпрд╣ рдЕрд╕реНрдерд┐рд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╛рдардХ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдореИрдВ рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдкреВрд░рд╛ рд╕рдорд╛рдзрд╛рди рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐
performance
рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЯрд╛рдЗрдорд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреЗ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
Date.now()
1 рдЬрдирд╡рд░реА, 1970 рд╕реЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдХреЗрд╡рд▓ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рд╕реЗ рддреНрд░реБрдЯрд┐ рдФрд╕рддрди 0.5 рдПрдордПрд╕ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдШрдЯрд╛рд╡ рдСрдкрд░реЗрд╢рди ab
рдЖрдк 2 рдПрдордПрд╕ рддрдХ рдЕрд╕рдлрд▓ рд░реВрдк рд╕реЗ "рдЦреЛ" рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдФрд░ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдордп рдореАрдЯрд░ рд╕реНрд╡рдпрдВ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдмрдбрд╝реЗ рд╕рдордп рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред- рд╡реЗрдм рдкреЗрдЬ рдХреЗ рдЦреБрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ
performance.now()
рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рдХрд╛ рдПрдкреАрдЖрдИ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рдЯреАрдХ рдорд╛рдк рдХреЗ рд▓рд┐рдП "рддреЗрдЬ"ред рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╡реИрд▓реНрдпреВ рджреЗрддрд╛ рд╣реИ , рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдУрдПрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдХрд░реАрдм рд╕рдЯреАрдХрддрд╛ рд╕реНрддрд░ рджреЗрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд▓рдЧрднрдЧ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ ...
рдХрд╛рд▓реА рдЫрд╛рдпрд╛
2018 рдореЗрдВ рд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╕рдирд╕рдиреАрдЦреЗрдЬ рд╕рдордп рдХреЗ рд╣рдорд▓реЗ рдХреЗ рдХрд╛рд░рдг, рд╕рдм рдХреБрдЫ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЯрд╛рдЗрдорд░ рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдореЛрдЯрд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЕрдЧрд░ рднреЗрджреНрдпрддрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рд╕рдВрд╕реНрдХрд░рдг 60 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдЯрд╛рдЗрдорд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдЬ, рдФрд░ рднреА рдмрджрддрд░ред
рдпрд╣рд╛рдБ
MDN рдХрд╣рддреЗ рд╣реИрдВ:
рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдирд╣реАрдВ рд╣реИред рд╕реНрдкреЗрдХреНрдЯрд░ рдЬреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдЦрддрд░реЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдкрд░ рдЧреЛрд▓ рдХрд░рддреЗ рд╣реИрдВред (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60 рдореЗрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рджреМрд░ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред) рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдереЛрдбрд╝рд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрднреА рднреА рдЗрди рдЯрд╛рдЗрдорд┐рдВрдЧ рд╣рдорд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреИрд╕реЗ рд╣реИред
рдЪрд▓реЛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣ 10 рдПрдордПрд╕ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
рдЯреЗрд╕реНрдЯ рдХреЛрдб: рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рд╕рдордп рдорд╛рдк function measureTimesLoop(length) { const d = new Array(length); const p = new Array(length); for (let i = 0; i < length; i++) { d[i] = Date.now(); p[i] = performance.now(); } return { d, p } }
Date.now()
performance.now()
рдзрд╛рд░

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 44.17763.771.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.0538336052202284 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.7547819181245603 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.567100970873786 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6748006785171455 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1.5015000000003056 рдПрдордПрд╕
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 71.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.0168350168350169 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.21645930182417966 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.0134453781512605 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.1734108492762375 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдХреНрд░реЛрдо

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 79.0.3945.88
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.02442996742671 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.49858684744444 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 0.005555847229948915 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.027497846727194235 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 0.0050000089686363935 рдПрдордПрд╕
рдареАрдХ рд╣реИ, рдХреНрд░реЛрдо, рдЬрд╝реВрдо рдХрд░рдХреЗ 1 рдорд┐рд╕реЗред

рдЗрд╕рд▓рд┐рдП, рдХреНрд░реЛрдо рдЕрднреА рднреА рдкрдХрдбрд╝ рдореЗрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ
performance.now()
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
performance.now()
рдЕрднреА рддрдХ рдЧрд▓рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рдХрджрдо рд╕реБрдВрджрд░ 0.005 рдПрдордПрд╕ рд╣реИред рдПрдЬ рдХреЗ рддрд╣рдд,
performance.now()
рдЯрд╛рдЗрдорд░
Date.now()
рддреБрд▓рдирд╛ рдореЗрдВ
Date.now()
! рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ, рджреЛрдиреЛрдВ рдЯрд╛рдЗрдорд░ рдореЗрдВ рдПрдХ рд╣реА рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕рдЯреАрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдХреБрдЫ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд╣рд▓реЗ рд╣реА рдирд┐рдХрд╛рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдФрд░ рдЯрд╛рдЗрдорд░ рд╣реИ (рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
WebAudio рдПрдкреАрдЖрдИ рдЯрд╛рдЗрдорд░
рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЬрд╛рдирд╡рд░ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд▓рдВрдмрд┐рдд рдСрдбрд┐рдпреЛ рдХрддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдСрдбрд┐рдпреЛ рдИрд╡реЗрдВрдЯреНрд╕ (рдиреЛрдЯреНрд╕ рдЦреЗрд▓рдирд╛, рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛) рдорд╛рдирдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрд▓реНрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
setInterval
рдФрд░
setTimeout
- рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рдмрд╣реБрдд рдмрдбрд╝реА рддреНрд░реБрдЯрд┐ рд╣реИред рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдорд░
рдорд╛рдиреЛрдВ рдХреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ (рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдкрд╣рд▓реЗ рдирд┐рдкрдЯрд╛рдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдИрд╡реЗрдВрдЯ рдорд╢реАрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЧрднрдЧ 5-25 рдПрдордПрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреНрд░реАрдирд╣рд╛рдЙрд╕ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднреАред
рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЦрд╛рдВрдХрди100 рдПрдордПрд╕ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
рдкрд░реАрдХреНрд╖рдг рдХреЛрдб: рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЪрдХреНрд░ рдореЗрдВ рд╕рдордп рдорд╛рдк function pause(duration) { return new Promise((resolve) => { setInterval(() => { resolve(); }, duration); }); } async function measureTimesInAsyncLoop(length) { const d = new Array(length); const p = new Array(length); for (let i = 0; i < length; i++) { d[i] = Date.now(); p[i] = performance.now(); await pause(1); } return { d, p } }
Date.now()
performance.now()
рдзрд╛рд░

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 44.17763.771.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 25.595959595959595 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 10.12639235162126 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 28 рдПрдордПрд╕
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 25.862596938775525 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 10.123711255512573 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд╛рд╣реНрди: 27.027099999999336 рдПрдордПрд╕
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 71.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.6914893617021276 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6018870280772611 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2 рдПрдордПрд╕
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.7865168539325842 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6442818510935484 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2 рдПрдордПрд╕
рдХреНрд░реЛрдо

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 79.0.3945.88
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 4.7878787878787888, рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.7557553886872682 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 5 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 4.783989898979516 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6483716900974945 рдПрдордПрд╕
рдорд╛рдзреНрдпрд┐рдХрд╛ рдЕрдВрддрд░рд╛рд▓: 4.750000000058208 рдПрдордПрд╕
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдкрд╣рд▓рд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ HTML рдСрдбрд┐рдпреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛рдж рд╣реЛрдЧрд╛ред рдкреВрд░реНрдг-рд╡рд┐рдХрд╕рд┐рдд WebAudio рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ - рд╡реЗ рд╕рднреА рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдирд╢реЗ рдореЗрдВ, рдореИрд▓рд╛ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣реЗ рдереЗред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ
setTimeout
рд░реВрдк рдореЗрдВ
setTimeout
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдзреБрдирд┐рдХ WebAudio рдПрдкреАрдЖрдИ 0.02 рдПрдордПрд╕ (44100Hz рдХреЗ рдирдореВрдиреЗ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдЯрдХрд▓реЗрдВ) рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐
setTimeout
рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд┐рд▓рдВрдмрд┐рдд рдзреНрд╡рдирд┐ рдкреНрд▓реЗрдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
source.start(when);
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдСрдбрд┐рдпреЛ рдирдореВрдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдкреНрд░рдЬрдирди "рд╡рд┐рд▓рдВрдмрд┐рдд" рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП "рд╕реНрдердЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ", рдЖрдкрдХреЛ рдЗрд╕реЗ "рдЕрдм рддрдХ" рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
source.start(audioCtx.currentTime);
рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░-рдЬрдирд┐рдд рд╕рдВрдЧреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВрдпрджрд┐ рдЖрдк рдиреЛрдЯреЛрдВ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо-рд╕рд┐рдВрдереЗрд╕рд╛рдЗрдЬреНрдб рд░рд╛рдЧ рдмрдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдиреЛрдЯреЛрдВ рдХреЛ рдкреНрд▓реЗрдмреИрдХ рдХрддрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░, рд╕рднреА рдЧреИрд░-рдореМрд▓рд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреА рдЕрдирд┐рдпрдорд┐рддрддрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд░рд╛рдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓реЗрдЧрд╛ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рд░рд╛рдЧ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ "рдЖрд╡рд┐рд╖реНрдХрд╛рд░" рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ред
рдЙрди рд╕рднреА рдкрд░ рд╢рд╛рд╕рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдорд░
рдЪреВрдВрдХрд┐
audioCtx.currentTime
рдЗрддрдирд╛ рд╕реНрдерд┐рд░ рдФрд░ рд╕рдЯреАрдХ рд╣реИ, рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдордп рдХреЗ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдг рдХреЛрдб: рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдордп рдорд╛рдк рдХреЛ рдорд╛рдкрдиреЗ function measureTimesInLoop(length) { const d = new Array(length); const p = new Array(length); const a = new Array(length); for (let i = 0; i < length; i++) { d[i] = Date.now(); p[i] = performance.now(); a[i] = audioCtx.currentTime * 1000; } return { d, p, a } }
Date.now()
performance.now()
audioCtx.currentTime
рдзрд╛рд░

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 44.17763.771.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.037037037037037 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6166609846299806 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.5447103117505993 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.4390514285320851 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд╛рд╣реНрди: 1.5015000000000782 рдПрдордПрд╕
audioCtx.currentTime
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 2.955751134714949 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.6193645611529503 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2.902507781982422 рдПрдордПрд╕
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 71.0
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.005128205128205 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.12392867665225249 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.00513698630137 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.07148844433269844 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
audioCtx.currentTime
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рд┐рдВрдХ рдЯрд╛рдЗрдорд░ рдореЗрдВ рдСрдбрд┐рдпреЛ рдЯрд╛рдЗрдорд░ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдХреНрд░реЛрдо

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 79.0.3945.88
рджрд┐рдирд╛рдВрдХред
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.0207612456747406 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.49870223457982504 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 1 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ()
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 0.005414502034674972 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 0.027441293974958335 рдПрдордПрд╕
рдорд╛рдзреНрдпрд┐рдХрд╛ рдЕрдВрддрд░рд╛рд▓: 0.004999999873689376 рдПрдордПрд╕
audioCtx.currentTime
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 3.0877599266656963 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди, рдЖрд░рдПрдордПрд╕: 1.1445555956407658 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2.9024943310650997 рдПрдордПрд╕
рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЦрд╛рдВрдХрдирдкрд░реАрдХреНрд╖рдг рдХреЛрдб: рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЪрдХреНрд░ рдореЗрдВ рд╕рдордп рдорд╛рдк100 рдПрдордПрд╕ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
function pause(duration) { return new Promise((resolve) => { setInterval(() => { resolve(); }, duration); }); } async function measureTimesInAsyncLoop(length) { const d = new Array(length); const p = new Array(length); const a = new Array(length); for (let i = 0; i < length; i++) { d[i] = Date.now(); p[i] = performance.now(); await pause(1); } return { d, p } }
Date.now()
performance.now()
audioCtx.currentTime
рдзрд╛рд░

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 44.17763.771.0
Date.now ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 24.505050505050505 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 11.513166584195204 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 26 рдПрдордПрд╕
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 24.50935757575754 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 11.679091435527388 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд╛рд╣реНрди: 25.525499999999738 рдПрдордПрд╕
audioCtx.currentTime:
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 24.76005164944396 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 11.311571546205316 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд╛рд╣реНрди: 26.121139526367187 рдПрдордПрд╕
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 71.0
Date.now ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.6875 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 0.6663410663216448 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2 рдПрдордПрд╕
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 1.7234042553191489 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 0.6588877688171075 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 2 рдПрдордПрд╕
audioCtx.currentTime:
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 10.158730158730123 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 1.4512471655330046 рдПрдордПрд╕
рдорд╛рдзреНрдпрд┐рдХрд╛ рдЕрдВрддрд░рд╛рд▓: 8.707482993195299 рдПрдордПрд╕
рдХреНрд░реЛрдо

рдЖрдВрдХрдбрд╝реЗрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг: 79.0.3945.88
Date.now ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 4.585858585858586 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 0.9102125516015199 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 5 рдорд┐
рдкреНрд░рджрд░реНрд╢рдиред рдЕрдЬреНрдЮрд╛рдд ():
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 4.592424242424955 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 0.719936993603155 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд┐рдХрд╛: 4.605000001902226 рдПрдордПрд╕
audioCtx.currentTime:
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓: 10.12648022171832 рдПрдордПрд╕
рдФрд╕рдд рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди: 1.4508887886499262 рдПрдордПрд╕
рдЕрдВрддрд░рд╛рд▓ рдордзреНрдпрд╛рд╣реНрди: 8.707482993197118 рдПрдордПрд╕
рдЦреИрд░, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред "рдмрд╛рд╣рд░", рдпрд╣ рдЯрд╛рдЗрдорд░ рд╕рдмрд╕реЗ рдЧрд▓рдд рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдЯрд╛рдЗрдорд░ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░: рд╕рдВрдХрд▓реНрдк 3 рдПрдордПрд╕ рдФрд░ рдмрджрддрд░ рдФрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдШрдмрд░рд╛рдирд╛ рд╣реИред рд╢рд╛рдпрдж
audioCtx.currentTime
рдХрд╛ рдорд╛рди рдСрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд░рд┐рдВрдЧ рдмрдлрд░ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдиреНрдпреВрдирддрдо рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓реЗрдмреИрдХ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдВрдм рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИред
рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рдзреНрд╡рдирд┐ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдбрд┐рдпреЛ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдЯреАрдХ рдЯрд╛рдЗрдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдЧреНрд░рд╛рд╣рдХ
performance.now()
рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХ audioCtx.currentTime
performance.now()
ред - рдФрд░ client.now
performance.now()
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ performance.now()
ред
рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдордЬрд╝реЗрджрд╛рд░ рд╣реИ: рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рдП рдФрд░ рдмреА рдХреЗ рджреЛ рдЕрдЪреНрдЫреЗ рд╕реНрд░реЛрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдмрд╣реБрдд рд╣реА рдореЛрдЯреЗ рдФрд░ рд╢реЛрд░ рд╣реИ; рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреЗ рдЖрдк рд╣реА рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдореВрд▓ рдЧреИрд░-рд╢реЛрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдмрд╣реБрдд рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдЖрджрд░реНрд╢ рдШрдбрд╝рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рджреВрд░реА рдПрдХ рд╕реНрдерд┐рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рдк рдХреЛ n рдмрд╛рд░ рд▓реЗрдирд╛, рд╣рдо рдорд╛рдк рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ n рдЧреБрдирд╛ рддрдХ рдХрдо рдХрд░ рджреЗрдВрдЧреЗ, рдХреНрд░рдорд╢рдГред рдЬрдм рддрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдШрдбрд╝реА рдПрдХ рд╣реА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддреА рд╣реИред
рд╣рд╛рдБ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ
рдмреБрд░реА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдирд╣реАрдВ, рд╡реЗ рдПрдХ рд╣реА рдЧрддрд┐ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдШрдВрдЯреЛрдВ рдХреЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдпрд╣ рд╕рдордЭрдиреЗ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдХреНрдпрд╛ рдЕрдзрд┐рдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ:
audioCtx.currentTime
рдзреАрд░реЗ-рдзреАрд░реЗ
performance.now()
рд╕реЗ
audioCtx.currentTime
ред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реИред рд╣рдо рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА, рд▓реЛрдб рдХреЗ рддрд╣рдд, рдСрдбрд┐рдпреЛ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд╣реАрдВ рдирд┐рдЧрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ (рд░рд┐рдВрдЧ рдмрдлрд░ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд) рдСрдбрд┐рдпреЛ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рд▓реЗрдХрд┐рди рдЕрдЧрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд╛рде рджреЛ YouTube рд╡реАрдбрд┐рдпреЛ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рддрдереНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рд╣реА рд╕рдордп рдкрд░ рдЦреЗрд▓рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред рдФрд░ рдмрд┐рдВрджреБ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдерд┐рд░ рдФрд░ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдПред рд╣рдореЗрдВ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдЯреНрд░реЗрдб-рдСрдл рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдФрд╕рдд рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдорд╛рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: рдЕрдзрд┐рдХ - рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐
audioCtx.currentTime
рдореЗрдВ рдПрдХ рддреЗрдЬ рдХреВрдж рдЙрд╕ рд╕рдордп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЧрд┐рд░ рдЧрдИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдореВрд▓реНрдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрджрд┐ рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд┐рдирдЯ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдордп рдмреАрдд рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡реНрдпрд╛рдкрдХ рд╣реИ:
рдШрд╛рддреАрдп ,
рдордзреНрдп ,
рдХрд▓рдорди рдлрд╝рд┐рд▓реНрдЯрд░ , рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред
рд╕рдордп рдЦрд┐рдбрд╝рдХреА
рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реВрдк рдореЗрдВ
audioCtx.currentTime
рдХреЛ
performance.now()
рд╕рд╛рде рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реВрдк рдореЗрдВ, рддрд╛рдХрд┐ UI рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдорд╛рдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, 100 рдПрдордПрд╕ред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдорд╛рдк рддреНрд░реБрдЯрд┐ рдЗрд░реЗрдЯ = рдЗрд░реЗрдЯрд╛ + рдЗрд░рдм = 1 + 3 = 4 рдПрдордПрд╕
рддрджрдиреБрд╕рд╛рд░, 1 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо рдЗрд╕реЗ 0.4 рдПрдордПрд╕ рдФрд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ 0.04 рдПрдордПрд╕ рддрдХ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдЧреЗ рд╕реБрдзрд╛рд░ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЦрд┐рдбрд╝рдХреА рд╣реЛрдЧреА: 1 - 10 рд╕реЗрдХрдВрдбред
рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЗрд░реА рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдордп рдореЗрдВ рдЕрдЪрд╛рдирдХ рдХреЛрдИ рдЙрдЫрд╛рд▓ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐
audioCtx.currentTime
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╛рди рдЖрдБрдХрдбрд╝реЗ рдЬрдорд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ 500 тАЛтАЛрдПрдордПрд╕ рддрдХ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдорд╛рдк рдЦреБрдж рд╣рдо рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рд░реЛрдХрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдХрд┐ "рдЙрд▓реНрд▓реВ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред" рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдХрд╣рд╛рдиреА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИред
рдФрд░ рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рд╣реИ рдЙрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рднреА рд╕рдорд╛рди, рдирдпрд╛ рд╕рд╛рд▓ред
рдХреНрдпрд╛ рд╣реБрдЖ?
рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░: рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдпрд╣ рд╣реИрдмреЗ рдкрд░ рдПрдХ рдкреАрдЖрд░ рд╕рд╛рдЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рд▓рд╛рднрдХрд╛рд░реА рдУрдкрдирд╕реЛрд░реНрд╕ рдкреЗрдЯ-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрднреА рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛: рд╡рд┐рдЬреНрдЮрд╛рдкрди рдбрд╛рд▓рдирд╛, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреИрд╕рд╛ рдХрдорд╛рдирд╛ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВрдиреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдзрдирд░рд╛рд╢рд┐ рдХреЛ рдЬреАрд╡рд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдзрди рд╕реЗ рдЕрдм рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдЬреБрдЯрд╛рдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХреГрдкрдпрд╛, рдЕрдЪреНрдЫреЗ рд▓реЛрдЧ, рдореБрдЭреЗ рдордд рддреЛрдбрд╝реЛ рдФрд░ рдореБрдЭ рддрдХ рдордд рдкрд╣реБрдВрдЪреЛред рдпрд╣ рд╕рдм рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдордЬреЗрджрд╛рд░ рд╣реИред
рдирд╡ рд╡рд░реНрд╖ рдХреА рд╣рд╛рд░реНрджрд┐рдХ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!
рдЖрдк рдШреБрдВрдбреА рдХреЛ рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреГрд╢реНрдп, рд╕рдВрдЧреАрдд рдФрд░ рдСрдбрд┐рдпреЛ рдкреНрд░рднрд╛рд╡ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╣реИ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 100% рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
WebAudio рдФрд░ WebGL рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
UPD: MacOS Mojave рдХреЗ рддрд╣рдд рд╕рдлрд╛рд░реА рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЗрд╕ рд╕рдлрд╛рд░реА рдХреЗ рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╢реАрдШреНрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред iOS рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред
UPD2: рдЕрдЧрд░
snowtime.fun рдФрд░
web.snowtime.fun рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ
рд░рд╣реЗ рд╣реИрдВ , рддреЛ рдирдИ
habr .snowtime.fun рдЙрдкрдбреЛрдореЗрди
рдЖрдЬрд╝рдорд╛рдПрдБ ред рдЙрд╕рдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рджреВрд╕рд░реЗ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдкреБрд░рд╛рдиреЗ IP рдХреЛ DNS рдореЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛,
expire=1w
ред :(
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА:
рдмрд┐рдЯрдмрдХреЗрдЯрдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп,
рдореИрдХреНрд░реЛрд╡реЗрдХреНрдЯрд░ / рдлреНрд░реАрдкрд┐рдХ рдЗрд▓рд╕реНрдЯреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред