рдкрд░рд┐рдЪрдп
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо goroutine рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред Goroutines рдПрдХ рддрд░рд╣ рдХреА рдмрд╣реБрдд рд╕рд╕реНрддреА рдФрд░ рд╣рд▓реНрдХреА рдзрд╛рд░рд╛рдПрдБ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╡реЗ рдПрд░рд▓рд╛рдВрдЧ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЧреЛрд░реЛрдирд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдирд╛ рд╣реИред
рд╕реНрдореГрддрд┐
рдЧреЛрд░реЛрдЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдИ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╣реИ), рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдкреБрд╖реНрдЯрд┐рдПрдВ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ
4 - 4.5 рдмрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреА рд╣реИрдВред рдпрд╛рдиреА
1 рдорд┐рд▓рд┐рдпрди рдЧреЛрд░реЛрдирд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХреЗ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде 5 рдЬреАрдмреАред
рдЙрддреНрдкрд╛рджрдХрддрд╛
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдХреЛрдб рдХреЛ рдЧреЛрд░реЛрдЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдХрд┐рддрдирд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧреЛ рдХреАрд╡рд░реНрдб рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред
go testFunc()
рдЧреЛрд░реВрдЯрд╛рдЗрди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдзрди рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрджрд┐ GOMAXPROCS рдЪрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рдПрдХ рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕рдореЗрдВ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреА: GOMAXPROCS = 2 рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдЪрд░ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЧреЛрд░реЛрдЗрдЯрд┐рди рдмрдирд╛рдиреЗ, рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ, рдФрд░ рдХрднреА-рдХрднреА рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзрд╛рдЧреЛрдВ рдореЗрдВ рдЧреЛрд░реЛрдЗрдирдЯ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧреЗ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рднреА рдХрд╛рд░реНрдп рдиреЗрдЯрдЯреЙрдк рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
- рдПрдЯрдо D525 рдбреБрдЕрд▓ рдХреЛрд░ 1.8 GHz
- 4Gb DDR3
- рдЬрд╛рдУ r60.3
- рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕ x86_64
рддрдХрдиреАрдХ
рдпрд╣рд╛рдБ рдЬрд╛рдБрдЪ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрдирд░реЗрдЯрд░ рд╣реИ:
func genTest (n int) func (Res рдЪрд╛рди <- рдЗрдВрдЯрд░рдлрд╝реЗрд╕ {}) {
рд╡рд╛рдкрд╕реА func (Res рдЪрд╛рди <- рдЗрдВрдЯрд░рдлрд╝реЗрд╕ {}) {
рдореИрдВ рдХреЗ рд▓рд┐рдП: = 0; i <n; рдореИрдВ ++ {
math.Sqrt (13)
}
Res <- true
}
}
рдФрд░ рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдХреНрд░рдорд╢рдГ 13, 1, 10, 100, 1000 рдФрд░ 5000 рдмрд╛рд░ рд╕реЗ рд░реВрдЯ рдХреЛ рдШрдЯрд╛рддрд╛ рд╣реИ:
testFuncs := [] func (chan <- interface {}) { genTest(1), genTest(10), genTest(100), genTest(1000), genTest(5000) }
рдЕрдм, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди
рдХреЛ рдПрдХ рд▓реВрдк рдореЗрдВ рдПрдХреНрд╕ рдмрд╛рд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ
, рдФрд░ рдлрд┐рд░ рдПрдХреНрд╕ рдЧреЛрд░реЛрдЗрдЯрд┐рди рдореЗрдВ ред рдФрд░ рдлрд┐рд░ рдореИрдВ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рднреА рдЧреЛрд░рдЖрдЙрдЯреНрд╕ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрдВрдд рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХрдИ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рд▓рдЧрднрдЧ 16 рдШрдВрдЯреЗ рд▓рдЧреЗред
рдПрдХрд▓ рдзрд╛рдЧрд╛
export GOMAXPROCS= 1

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

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 700 рд╣рдЬрд╛рд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреЛрд░реЛрдЗрдиреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рднреА, рдЙрддреНрдкрд╛рджрдХрддрд╛ 80% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдЧрд┐рд░рддреА рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдлрд╝рдВрдХреНрд╢рди
1000 рдмрд╛рд░ sqrt (13) рдХреА
рдЧрдгрдирд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдУрд╡рд░рд╣реЗрдб рдХреЗрд╡рд▓
1% рд╣реЛрддрд╛ рд╣реИ ред рдФрд░ 5,000 рдЧреБрдирд╛ рдкрд░ - рдХреЗрд╡рд▓ 1%! рдФрд░ рдпреЗ рдорд╛рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреЛрд░реЛрдЗрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ! рдЕрд░реНрдерд╛рддреН, рдПрдХрдорд╛рддреНрд░ рд╕реАрдорд╛ рд╕реНрдореГрддрд┐ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖:
рдпрджрд┐ 10 рдЬрдбрд╝реЛрдВ рдХреА рдЧрдгрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдХрд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЯреБрдХрдбрд╝рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рд╣рд┐рдд), рдФрд░ рдЖрдк рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ рдЗрд╕реЗ рдЧреЛрд░реЛрдЗрди рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВред рдпрджреНрдпрдкрд┐ рдпрджрд┐ рдпрд╣ рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЗрди рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ 10 рдпрд╛ 100 рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╣рд╛рдирд┐ рдХреНрд░рдорд╢рдГ 20% рдпрд╛ 2% рд╣реЛрдЧреАред
рдХрдИ рд╕реВрддреНрд░
рдЕрдм рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрдм рд╣рдо рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 2 рд╣реИрдВ:
export GOMAXPROCS= 2
рдЕрдм рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдПрдВ:

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

рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рджреЛ рдлрд╝рдВрдХреНрд╢рди рджреЛрдиреЛрдВ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдиреЗрдЯрдЯреЙрдк рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рдВрдХреНрд╢рди рдХреНрд░рдорд╢рдГ ~ 45 ╬╝s рдФрд░ ~ 230 ╬╝s рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рднрд╛рд╖рд╛ рдХреЗ рдпреБрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рд╣реА рдордирднрд╛рд╡рди рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВред
рдПрдХ рдЯрд┐рдк рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдЧреЛрд░реЛрдЗрдЯрд┐рди рдХреЗ рд░реВрдк рдореЗрдВ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ 1 рд╕реЗ рдЕрдзрд┐рдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ :)
рдкреАрдПрд╕ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд░рд▓рд╛рдВрдЧред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдиреЗ рдЗрд╕ рдкрд░ 20 рдорд┐рд▓рд┐рдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рджреА!