рдирдорд╕реНрддреЗ! рдореЗрд░рд╛ рдирд╛рдо рдорд╛рд░реНрдХреЛ рд╣реИ, рдореИрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рднрд╛рдЧ рдореЗрдВ Badoo рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдБ ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреЛ рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВ, рдФрд░ рдЕрдХреНрд╕рд░ рдпреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ рдФрд░, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ, рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рд▓реЗрдЦрдХ рдХрджрдо рджрд░ рдХрджрдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХреИрд╕реЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рд╕рд╣рд┐рдд рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЧреЛ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдореГрджреНрдз рд╕рд╛рдзрдиреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред рдЕрдЪреНрдЫрд╛ рдкрдврд╝ рд▓реЛ!рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ "
рдЧреБрдб рдХреЛрдб рдЕрдЧреЗрдВрд╕реНрдЯ рдмреИрдб рдХреЛрдб рдЗрди рдЧреЛ " рд▓реЗрдЦ рдкрдврд╝рд╛
, рдЬрд╣рд╛рдВ рд▓реЗрдЦрдХ, рдХрджрдо рд╕реЗ рдХрджрдо, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдП рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ "рдмреБрд░реЗ рдХреЛрдб" рдХреЛ "рдЕрдЪреНрдЫреЗ рдХреЛрдб" рдореЗрдВ рдмрджрд▓рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ: рдЕрдзрд┐рдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░, рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреЛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдиреЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рднреА рдмрддрд╛рдпрд╛ред рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдореБрдЭрдореЗрдВ рдЫрд╛ рдЧрдИ: рдЪрд▓реЛ рдЗрд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ!
рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЗрд╕реЗ рд▓рд╛рдЗрди рд╕реЗ рд▓рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рднрд░рддрд╛ рд╣реИред

рд▓реЗрдЦрдХ рдиреЗ рди рдХреЗрд╡рд▓
рдЧрд┐рдЯрд╣рдм рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рднреА рд▓рд┐рдЦрд╛ред рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓реЗрдЦрдХ рдиреЗ рд╕рднреА рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдЦрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$ go test -bench=.
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо - рдмреЗрд╣рддрд░)рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ "рдЕрдЪреНрдЫрд╛ рдХреЛрдб" 16% рддреЗрдЬ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреНрд▓реАрдирд░ рдФрд░ рдХрдо рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдХреЛрдИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╡реНрдпрд░реНрде рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ)ред рд╢рд╛рдпрдж рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдиреЗ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдЕрд╡рд╕рд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рдпрд╛ рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╕рд╛рджрдЧреА рд╕реЗ рджреВрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╣реИрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдмрдЪрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рд╣реЛрдЧрд╛: рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдЕрдзрд┐рдХ рдирд╛рдЬреБрдХ рдФрд░ рд▓рдЪреАрд▓рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдо рд╕рд╛рджрдЧреА рдХреЗ рдкрд╣рд╛рдбрд╝ рдкрд░ рдЪрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВрдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИ: рдЖрдк рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ?
рддреНрд╡рд░рдг рдкрд░ рдХрд╛рдо рдХреЛ рдареАрдХ рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╖реНрдЯрддрдо рд░рдгрдиреАрддрд┐ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдкрдХреЗ рдорд┐рддреНрд░ рдЖрдкрдХреЗ рдорд┐рддреНрд░ рд╣реИрдВ:
$ go test -bench=. -cpuprofile cpu.prof $ go tool pprof -svg cpu.prof > cpu.svg
CPU рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЧреНрд░рд╛рдл (SVG рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ) $ go test -bench=. -trace trace.out $ go tool trace trace.out
рдЗрдВрджреНрд░рдзрдиреБрд╖ рдЕрдиреБрд░реЗрдЦрдг: рдмрд╣реБрдд рд╕реЗ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдп (рдХреЗрд╡рд▓ Google Chrome рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рд╡реНрдпрд╕реНрдд рд╣реИрдВ (0, 1, рдЖрджрд┐ рдХреЗ рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛рдПрдВ), рдФрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣ рд╣рдЬрд╛рд░реЛрдВ рдЫреЛрдЯреЗ рд░рдВрдЧ "рдЧрдгрдирд╛" рдФрд░ рдХрдИ рдЦрд╛рд▓реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рднреА рджрд┐рдЦрд╛рддреА рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдереЗред рдЖрдЗрдП рдЬрд╝реВрдо рдХрд░рддреЗ рд╣реИрдВ:
3 рдПрдордПрд╕ рдореЗрдВ "рд╡рд┐рдВрдбреЛ" (рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдХреЗрд╡рд▓ Google Chrome рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ, рдФрд░ рдпрд╣ рд╣рд░ рд╕рдордп рд╕реВрдХреНрд╖реНрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ "рдХреВрджрддрд╛" рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдмрд╣реБрдд рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ
рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐
рдлреНрд▓рд╛рдЗрдЯ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рдмрддрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рдордХрд╛рд▓рд┐рдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдпрджрд┐ рдХреЛрдИ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ)?
$ go test -race PASS
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИред рдХреЛрдИ рдлреНрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рдорд┐рд▓реАред рдЯреЗрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ (
рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВ ), рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╡реЗ рдПрдХ рд╣реА
ParseAdexpMessage рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдлрд╝реНрд▓рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЬрд╛рдБрдЪ рдХреА рд╡рд╣ рдареАрдХ рд╣реИред
"рдЕрдЪреНрдЫреЗ" рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдореЙрдбрд▓ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЧреЛрд░реЛрдЗрди (рд╕рднреА рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣рд╛рдБ рд▓реЗрдЦрдХ рдХреЗ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдиреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЧреЛрд░реЛрдЗрдиреЛрдВ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рд╕рд╕реНрддреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╖реНрдард╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рддрдирд╛ рдЬреАрддрддреЗ рд╣реИрдВ? рдЖрдЗрдП рдПрдХ рд╣реА рдХреЛрдб рд╕реЗ рддреБрд▓рдирд╛ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдЧреЛрд░реЛрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрдж рдХреЛ рд╣рдЯрд╛ рджреЗрдВ):


рдУрд╣, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдмрд┐рдирд╛ рд╕рдВрдЧрдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рддреЗрдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЧреЛрд░реЛрдЗрди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЧреИрд░-рд╢реВрдиреНрдп) рдУрд╡рд░рд╣реЗрдб рдЙрд╕ рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрддрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЧреИрд░-рд╢реВрдиреНрдп) рдУрд╡рд░рд╣реЗрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдмрджрд▓реЗрдВ:
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ)рд╣рдореЗрдВ "рдЕрдЪреНрдЫрд╛" рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 40% рддреНрд╡рд░рдг рдорд┐рд▓рд╛, рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ (
рдЕрдВрддрд░ ) рдХреЛ рд╣рдЯрд╛рдиреЗред
рдПрдХ рдЧреЛрд░реЛрдЗрди рдХреЗ рд╕рд╛рде, рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХреЛрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдЖрдЗрдП рдЕрдм рдкрд┐рдлрд┐рдЯ рдЧреНрд░рд╛рдл рдореЗрдВ рд╣реЙрдЯ рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЛ рджреЗрдЦреЗрдВ:
рдЕрдбрд╝рдЪрдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВрд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг (рдЕрдиреБрдХреНрд░рдорд┐рдХ рдСрдкрд░реЗрд╢рди, рд╕реНрд▓рд╛рдЗрд╕) рдХрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ 86% рд╕рдордп рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ 43% рд╕рдордп рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдлрд╝рдВрдХреНрд╢рди
(* Regexp) .FindAll рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд╛рджреЗ рдкрд╛рда рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд▓рдЪреАрд▓рд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдореЗрдореЛрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡реЗ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ
patternSubfield = "-.[^-]*"
рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдбреИрд╢ (-) рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд▓рд╛рдЗрди рдореЗрдВ рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣, рдереЛрдбрд╝рд╛ рдХреЛрдб рдЦреАрдВрдЪ рдХрд░,
рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкреНрд▓рд┐рдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб (
рдХрдорд┐рдЯ ,
рдХрдорд┐рдЯ ) рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ:
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ)рд╡рд╛рд╣! 40% рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдХреЛрдб! рд╕реАрдкреАрдпреВ рдЦрдкрдд рдЧреНрд░рд╛рдл рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ (40%) рдкрд╛рдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм 21% рд╕рдордп
рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред
рдирд┐ :
рд╢реБрд▓реНрдХ рд╕рдорд╛рд░реЛрд╣:
рдпрд╣ рдлреАрдЪрд░ рдореБрдЭреЗ рдЗрдВрдЯрд┐рдЧреНрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдмрд╛рдЗрдЯреНрд╕ред рдЯреНрд░рд┐рдо рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ "рдХрдЯ рдСрдл" рд╡рд╛рд▓реЗ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЙрдореНрдореАрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдЪрд░рд┐рддреНрд░ - рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рддреНрд╡рд░рдг рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЪрд▓реЛ рдорд╛рдирдХ рдПрдХ рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдЯреНрд░рд┐рдо рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВред рд╣рдорд╛рд░рд╛ рдХрд╕реНрдЯрдо
рдЯреНрд░рд┐рдо рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛:

╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ)рд╣реБрд░реНрд░реЗ, рдПрдХ рдФрд░ 20% рдХреА рдХрдЯреМрддреА! рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореВрд▓ "рдЦрд░рд╛рдм" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЪрд╛рд░ рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ!
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд▓рд╛рдЗрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реНрддрд░ рдкрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рддрд░реНрдХ рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 6,000 рдлрд╛рдЗрд▓реЗрдВ (6,000 рд╕рдВрджреЗрд╢) рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рддреЗрдЬреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рдЧреЛрд░реЛрдЗрди рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ; рдмреИрдВрдЧрдиреА рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕рдорд╛рдзрд╛рди рд╣реИ)рд▓рд╛рдн 66% рд╣реИ (рдпрд╛рдиреА, рддреАрди рдмрд╛рд░ рддреНрд╡рд░рдг)ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рднреА 12 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдЕрднреА рднреА рдПрдХ "рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп" рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЧреЛрд░рдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рд▓рд╛рдЧрдд рдорд╣рддреНрд╡рд╣реАрди рдирд╣реАрдВ рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 6,000 рд╕реЗ рдмрдврд╝рд╛рдХрд░ 120,000 рдХрд░рдиреЗ рд╕реЗ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ "рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рддрд┐ рд╕рдВрджреЗрд╢" рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЗрддрдиреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЧреЛрд░реЛрдЗрдиреНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд░рдирдЯрд╛рдЗрдо
рд╢реЗрдбрдпреВрд▓рд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрд░рд┐ рд▓рд╛рддрд╛
рд╣реИ ред
рд╣рдо рдХреЗрд╡рд▓ рдХреБрдЫ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдмрдирд╛рдХрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп (12 рдЧреБрдирд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА) рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 12 рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдЧреЛрд░реЛрдЗрди, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рднрд╛рдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛:
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ; рдмреИрдВрдЧрдиреА рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕рдорд╛рдзрд╛рди рд╣реИ)рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ 79% рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд░рдгрдиреАрддрд┐ рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВред
рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЗрд╖реНрдЯрддрдо рдЙрдкрдпреЛрдЧ рдХрдИ рдЧреЛрд░реЛрдЗрдиреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдпрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдХреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ (рдЧреЛрд░реЛрдЗрди) рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдпрд╣ рд╕рдм рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХреБрдЫ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрд░ рд╕реЗ рдЕрдзрд┐рдХ рдЧреЛрд░реЛрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ; рдмреИрдВрдЧрдиреА рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕рдорд╛рдзрд╛рди рд╣реИ)рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖ рдЧрдП рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреБрдЫ рд╕реНрдерд╛рдиреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдФрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рд╕рдордп-рд╕рдордп рдкрд░ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдкреНрд░рднреБрддреНрд╡ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдп рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЖрд╡рдВрдЯрди рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рди рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред
рдЕрдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореИрдВ рд░реЙрдм рдкрд╛рдЗрдХ рд╕реЗ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛,
рдПрдХ рдХрд╕реНрдЯрдо рд▓реЗрдХреНрд╕рд░ (
рд╕реНрд░реЛрдд ) рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо рдкрд╛рд░реНрд╕рд░ (
рд╕реНрд░реЛрдд ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХреЛрдб рдЕрднреА рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рдореИрдВ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ), рдпрд╣ рдореВрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рд╕рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рдФрд░ 30% рддреЗрдЬ рд╣реИред
╬╝ рдкреНрд░рддрд┐ рдХреЙрд▓ (рдХрдо рдмреЗрд╣рддрд░ рд╣реИ; рдмреИрдВрдЧрдиреА рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕рдорд╛рдзрд╛рди рд╣реИ)рд╣рд╛рдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 23 рдЧреБрдирд╛ рдХрд╛ рддреНрд╡рд░рдг рдорд┐рд▓рд╛ред
рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд░реЛрдорд╛рдВрдЪ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдХреБрдЫ рдиреЛрдЯ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд▓рд╛рдн рдЕрдХреНрд╕рд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
- рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рд╣реА рдбрд┐рдХрдореНрдкрд▓рд┐рдВрдЧред рдирд┐рдореНрди-рд╕реНрддрд░ рдХреЗ рд╕рд╛рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рд▓реЗрдВ: I / O, рдмреИрдЪрд┐рдВрдЧ, рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХрддрд╛, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ред
- рдмрд┐рдЧ рдУ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИред
- рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рдХрд╛рдо рд╣реИред рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рдХреА рд╡реНрдпрд╛рдкрдХ рд╕рдордЭ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдо рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдХрд╛рдо рдореЗрдВ рдЕрдиреБрднрд╡ рдХрд░реЗрдВрдЧреЗред
- рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдкрдХрд░рдг рдХрд╛ рдПрдХ рд╕реЗрдЯ ( рдмреЗрдВрдЪ , рдкреЛрдЯреНрд░реЗрдЯ , рдЯреНрд░реЗрд╕ , рд░реЗрд╕ рдбрд┐рдЯреЗрдХреНрдЯрд░ , рдХрд╡рд░ ) рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╢реЛрдз рдХреЛ рд╕рд╕реНрддреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рддрд╛ рд╣реИред
- рдЕрдЪреНрдЫрд╛, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдХреЛрдИ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡реЗ рд▓рд╛рдирдд рд╣реИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ wilds рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рд╕рд╣реА рд░рд╣реЗред
- рдЦреБрдж рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рдкреВрдЫреЗрдВ рдХрд┐ "рдЙрдкрд╡рд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред" рдХрд┐рд╕реА рдПрдХ рд╕рдордп рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЕрдкрдирд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдореБрдлрд╝реНрдд рдирд╣реАрдВ рд╣реИ: рдЗрдВрдЬреАрдирд┐рдпрд░ рдХрд╛ рд╕рдордп, рдЬрдЯрд┐рд▓рддрд╛, рдмрдЧ рдФрд░ рддрдХрдиреАрдХреА рдЛрдгред
- рдХреЛрдб рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдмрд╛рд░ рд╕реЛрдЪреЗрдВред
- рдЬрдЯрд┐рд▓рддрд╛ ╬й (n┬▓) рдФрд░ рдКрдкрд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рдорд╣рдВрдЧреЗ рд╣реЛрддреЗ рд╣реИрдВред
- рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди) рдпрд╛ рдУ (рдПрди рд▓реЙрдЧ рдПрди) рдФрд░ рдиреАрдЪреЗ рдХреЗ рд╕рд╛рде рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдорддреМрд░ рдкрд░ рдареАрдХ рд╣реИрдВред
- рд╡рд┐рднрд┐рдиреНрди рдЫрд┐рдкреЗ рд╣реБрдП рдХрд╛рд░рдХреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдореЗрдВ рд╕рднреА рд╕реБрдзрд╛рд░ рдЗрди рдХрд╛рд░рдХреЛрдВ рдХреЛ рдХрдо рдХрд░рдХреЗ рдХрд┐рдП рдЧрдП рдереЗ, рди рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╡рд░реНрдЧ рдХреЛ рдмрджрд▓рдХрд░ред
- I / O рдЕрдХреНрд╕рд░ рдПрдХ рдЕрдбрд╝рдЪрди рд╣реИ: рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд╡реЗрд░реА, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдоред
- рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рдорд╣рдВрдЧреА рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрддреА рд╣реИрдВред
- рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдЧрдгрдирд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рд╣реИрдВред
- рдвреЗрд░ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рд╡рд╕реНрддреБ рдвреЗрд░ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рд╡рд╕реНрддреБ рд╕реЗ рд╕рд╕реНрддреА рд╣реИред
- рдорд╣рдВрдЧреА рд╕реНрдореГрддрд┐ рдЪрд╛рд▓ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд▓рд╛рдЗрд╕ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
- рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рддрднреА рдкреНрд░рднрд╛рд╡реА рд╣реЛрддреА рд╣реИрдВ рдЬрдм рд░реАрдб-рдУрдирд▓реА (рд░рд┐рд╕реНрд╕рд▓рд┐рдВрдЧ рд╕рд╣рд┐рдд)ред рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, [] рдмрд╛рдЗрдЯ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реИрдВред
- рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбреЗрдЯрд╛ рдирд┐рдХрдЯ рд╣реИ (рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╢)ред
- рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдФрд░ рд╕рдорд╛рдирддрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
- рдЬрдм рдЖрдк рдЧрд╣рд░реА рдФрд░ рдиреАрдЪреА рдЦреБрджрд╛рдИ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдХрд╛рдВрдЪ рдХрд╛ рдлрд░реНрд╢" рдпрд╛рдж рд░рдЦреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдЧреЛ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рд╣рд╛рде рдХреЛрдбрд╛рдВрддрд░рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ, SIMD рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдЬрд▓реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреИрдиреЛрд╕реЗрдХрдВрдб рдХрд╛ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреА рднрд╛рд╖рд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ!