рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкрдврд╝рдиреЗ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рдХреЛрд░реЛрдирд╛ рдПрд╕рдбреАрдХреЗ рдкрд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдпрд╣ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдорд╛рдирдХ рдЯрд╛рдЗрдорд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓реЗрдЦ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдПрдХ рдЖрд╡реЗрджрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп рджрд┐рдЦрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡реЗрджрди рдХреЛ рдЙрд╕рдХреЗ рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1 рдмрд╛рд░ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
1. рд╕реНрдкрд╖реНрдЯ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рдиред
рдПрдХ рдорд╛рдирдХ рдЯрд╛рдЗрдорд░ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреА рдЯрд┐рдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
timeout = 1000 timer.performWithDelay( timeout,function(event) print(event.count) end,0)
рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдорд╛рдирдХ рдЯрд╛рдЗрдорд░ 300-400ms рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдЗрд╕ рдореВрд▓реНрдп рдХреЗ рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛ рдЕрд▓рдЧ рд╣реИред рдЯрд╛рдЗрдорд░ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдЯрд┐рдХ рдЕрд╡рдзрд┐ (рдпрджрд┐ рдЖрдк 1 рдПрдордПрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ) 1 / рдПрдлрдкреАрдПрд╕ рд╣реИ, рдЕрд░реНрдерд╛рддред 16. (6) 60 рдлреНрд░реЗрдо рдпрд╛ 33 рдХреЗ рд▓рд┐рдП рдПрдордПрд╕ред (3) 30 рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдПрдордПрд╕ред
- рджреВрд╕рд░реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрдХреЗрддрд┐рдд рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рдЯреАрдХ рдЕрд╡рдзрд┐ рдореЗрдВ рднреА, рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХ рд╕реЗ рд▓рдЧрднрдЧ 5-10 рдПрдордПрд╕ рдХреА рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ 15-30 рд╕реЗрдХрдВрдб рдХреА рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЯрд╛рдЗрдорд░ рдмрдирд╛рддреЗ рд╕рдордп рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╕реЗ 5 рдПрдордПрд╕ рдШрдЯрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред 1000 рдХреЗ рдмрдЬрд╛рдп 995 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
- рддреАрд╕рд░рд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛрдб рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЕрд╕реНрдерд┐рд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдг рдЫреЛрдЯреЗ рдлреНрд░рд┐рдЬрд╝ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рдлрд╝реНрд░рд┐рдЬрд╝ рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред
- рдЪреМрдерд╛, рдпрджрд┐ рдЖрдк рдЖрд╡реЗрджрди рдХреЛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рд░ рд╕рдордп рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
2. рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдгрдпред
рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣рдо рдЙрдЪреНрдЪрддрдо рд╕рдВрднрд╡ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯрд┐рдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдЯреАрдХ рд╕рдордп рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрдгрдирд╛ рд╣реЛрдЧреАред
local timeout = 1000
рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдо рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд┐рдХ рдЖрд╡реГрддреНрддрд┐ 1ms рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд┐рдХ рдХреНрд╡рд╛рдВрдЯрд╛ рд╣рд░ 16 (33) -50ms рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рддреНрд░реБрдЯрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧрд╛, рддреНрд░реБрдЯрд┐ 0.50ms рдХреА рд╕реАрдорд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрдЧреА рдЯрд┐рдХ рдЯрд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд░реНрдерд╛рддреНред рдЯрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджрд░ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕реНрдерд┐рд░ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рджреВрд░реА рдкрд░ (рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рднреА) рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдореВрд▓реНрдп рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рддред рдПрдХ рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рднреА, рд╣рдорд╛рд░реЗ рдЕрдЧрд▓реЗ рдЯрд┐рдХ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдЯрд┐рдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рд╣реА рд╢реНрд░реЗрдгреА рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
3. рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рдиреНрдпрд╛рдп рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рджрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдореЗрдВ рдПрдХ рдмрд╛рд░ рджреВрд╕рд░реА рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡реЗрджрди рджреЛ рдЯрд╛рдЗрдорд░ (рдЕрд▓рдЧ рд╕реЗ) рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЬрдорд╛ рд╣реБрдИ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдПрдЧрд╛ред
local timeout = 1000 socket = require "socket" local start_time = socket.gettime()*1000
рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!