PHP рдкреНрд░рджрд░реНрд╢рди: рдпреЛрдЬрдирд╛, рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ, рдЕрдиреБрдХреВрд▓рди



рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣рдордиреЗ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ PHP 7.0 рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдорд┐рд▓рд┐рдпрди рдбреЙрд▓рд░ рдмрдЪрд╛рдпрд╛ред рд╣рдорд╛рд░реЗ рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░, рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рджреЛрдЧреБрдирд╛ рдХреБрд╢рд▓ рдерд╛: рдЬрд┐рд╕ рд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо ~ 600 рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рдереЗ, рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рдж ~ 300 рдкрд░реЛрд╕рдирд╛ рд╢реБрд░реВ рд╣реБрдЖред рдирддреАрдЬрддрди, рджреЛ рд╕рд╛рд▓ рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд╖рдорддрд╛ рдХрд╛ рднрдВрдбрд╛рд░ рдерд╛ред

рд▓реЗрдХрд┐рди рд╡реНрдпрд╕реНрддрддрд╛ рдмрдврд╝ рд░рд╣реА рд╣реИред рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИред рд╣рдо рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣, рдмрджрд▓реЗ рдореЗрдВ, рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкрд┐рдЫрд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ 2-2.5 рдЧреБрдирд╛ рдмрдврд╝ рдЧрдП рд╣реИрдВред

рд╣рдордиреЗ рдЦреБрдж рдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╣рд╛рдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рджреЛрдЧреБрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рджреЛрдЧреБрдиреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ, рдФрд░ рд╣рдо рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪрдиреЗ рд▓рдЧреЗред PHP рдХреЗ рдореВрд▓ рдореЗрдВ, рдЙрдкрдпреЛрдЧреА рдЕрдиреБрдХреВрд▓рди (JIT, рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ) рдлрд┐рд░ рд╕реЗ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдХреЗрд╡рд▓ PHP 7.4 рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕рдВрдХреНрд░рдордг рдЪрд╛рд▓ рдХреЛ рдЕрдм рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХрдЯ рдХреЗ рддрд╣рдд, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдХреМрди рд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреБрдХреВрд▓рди, рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕рдордп рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХреАред

рдЕрдиреБрдХреВрд▓рди рдХреНрдпреЛрдВ?


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

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдЕрдХреНрд╕рд░ рд▓реЛрд╣реЗ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рд▓реЗ рд▓реЛред рдЕрдм, PHP 7.0 рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдСрдлрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ 600 рд╕рд░реНрд╡рд░ рд╣реИрдВ рдЬреЛ PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдврд╝ рдЧреБрдирд╛ рдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 300 рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗред

рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдФрд╕рдд рд▓рд╛рдЧрдд рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд▓реЗ рд▓реЛ - $ 4,000ред 300 * 4000 = $ 1,200,000 - рдбреЗрдврд╝ рдЧреБрдирд╛ рдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рд▓рд╛рдЧрддред

рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рддреНрд░рд╛ рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рд▓реЛрд╣реЗ рдХреЛ рдЦрд░реАрджрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд╣реЛрдЧрд╛ред

рдХреНрд╖рдорддрд╛ рдпреЛрдЬрдирд╛


рдХреБрдЫ рднреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд╡рд╣ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреНрд╖рдорддрд╛ рдирд┐рдпреЛрдЬрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдареЛрд╕ рд╕рдВрдХреЗрддрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╣реИред рд╕рдм рдХреЗ рдмрд╛рдж, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╕реАрдкреАрдпреВ (рдпрд╛ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди) 6% рдпрд╛ 146% рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрджрд┐ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдордп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рд╕реЗрд╡рд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рддрдм рд╣реА рдмрдврд╝рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рдХрдЯ рд╣реЛ рдЪреБрдХреА рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╕рднреА рдХрд╛рд░рдХреЛрдВ (рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ, рдиреЗрдЯрд╡рд░реНрдХ, рдбреНрд░рд╛рдЗрд╡, рдЖрджрд┐) рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреА рд╕рдордЭ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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


рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдорд╢реАрдиреЛрдВ рдХрд╛ рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ: рдФрд╕рдд, рдФрд╕рдд, рдкреНрд░рддрд┐рд╢рдд

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


рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдФрд░ рдХрдо рд╕реЗ рдХрдо рднрд░реА рд╣реБрдИ рдХреНрд▓рд╕реНрдЯрд░ рдорд╢реАрдиреЗрдВ

рдпрджрд┐ рдЖрдк рдЗрди рдЧреНрд░рд╛рдлреНрд╕ (рдпрд╛ рд╕рд┐рд░реНрдл рд╢реАрд░реНрд╖ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░) рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ 50% рдХрд╛ рд╕реАрдкреАрдпреВ рд▓реЛрдб рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд▓реЛрдб рдореЗрдВ рджреЛ рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рдХрд╛ рдорд╛рд░реНрдЬрд┐рди рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИред

рд╣рд╛рдЗрдкрд░ рдереНрд░реЗрдбрд┐рдВрдЧ


рд╣рд╛рдЗрдкрд░рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХреЛрд░ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕реАрдкреАрдпреВ-рдмрд╛рдЙрдВрдб рдереНрд░реЗрдб рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╢реАрд░реНрд╖ рдореЗрдВ 100% рд▓реЛрдб рд╣реЛрддреЗ рджреЗрдЦреЗрдВрдЧреЗред

рдЕрдм рдЗрд╕ рдХрд░реНрдиреЗрд▓ рдкрд░ рд╣рд╛рдЗрдкрд░реНрд░реЗрдбрд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд▓реЛрдб рдХрд░реЗрдВред рд╢реАрд░реНрд╖ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рддрд╛рд░реНрдХрд┐рдХ рдХреЛрд░ рджреЗрдЦреЗрдВрдЧреЗ, рдФрд░ рдХреБрд▓ рднрд╛рд░ 50% рд╣реЛрдЧрд╛ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ 0% рдкрд░, рдФрд░ рдЕрдиреНрдп 100% рдкрд░)ред


рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ: рд╢реАрд░реНрд╖ рдбреЗрдЯрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ

рдорд╛рдиреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗрд╡рд▓ 50% рд▓реЛрдб рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдореБрдХреНрдд рдХреЛрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╣рд╛рдЗрдкрд░рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╛рд░реАрд░рд┐рдХ рдХреЛрд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдл рдкрд░ рдпрд╣ рдЖрдзреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: 50% рд╕реЗ 100% рддрдХред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ 50% CPU рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рдЬрдм рд╣рд╛рдЗрдкрд░рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрддрдирд╛ рд╣реА рдирд╣реАрдВ рдмрдврд╝реЗрдЧрд╛ рдЬрд┐рддрдирд╛ рдкрд╣рд▓реЗ рд╣реБрдЖ рдерд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ (рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдорд╛рдорд▓рд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗ):

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб
<?php $concurrency = $_SERVER['argv'][1] ?? 1; $hashes = 100000000; $chunkSize = intval($hashes / $concurrency); $t1 = microtime(true); $children = array(); for ($i = 0; $i < $concurrency; $i++) {    $pid = pcntl_fork();    if (0 === $pid) {        $first = $i * $chunkSize;        $last = ($i + 1) * $chunkSize - 1;        for ($j = $first; $j < $last; $j++) {            $dummy = md5($j);        }        printf("[%d]: %d hashes in %0.4f sec\n", $i, $last - $first, microtime(true) - $t1);        exit;    } else {        $children[$pid] = 1;    } } while (count($children) > 0) {    $pid = pcntl_waitpid(-1, $status);    if ($pid > 0) {        unset($children[$pid]);    } else {        exit("Got a error pid=$pid");    } } 



рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рджреЛ рднреМрддрд┐рдХ рдХреЛрд░ рд╣реИрдВред рд╕рдорд╛рдирд╛рдВрддрд░ C рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВред

рдорд╛рдк рдХреЗ рдкрд░рд┐рдгрд╛рдо


рд╣рдо рд▓реЙрдиреНрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рджрд░реНрд╢рди

рдЖрдк рдХрд┐рд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

  • рд╕реА = 1 рдФрд░ рд╕реА = 2 рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдПрдЪрдЯреА = рдСрди рдФрд░ рдПрдЪрдЯреА = рдСрдл рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИрдВ, рдЬрдм рдПрдХ рднреМрддрд┐рдХ рдХреЛрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рди рджреЛрдЧреБрдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ;

  • C = 3 рдкрд░, HT рдХреЗ рдлрд╛рдпрджреЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ: HT = on рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдЬрдмрдХрд┐ C = 3 рдХреЗ рд╕рд╛рде HT = рдмрдВрдж рдХреЗ рд▓рд┐рдП рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдо рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ;

  • C = 4 рдореЗрдВ рд╣рдо HT рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ; рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 30% рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп C = 2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, CPU рдЙрдкрдпреЛрдЧ 50% рд╕реЗ рдмрдврд╝рдХрд░ 100% рд╣реЛ рдЧрдпрд╛ред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╕реАрдкреАрдпреВ рд▓реЛрдб рдХреЗ рд╢реАрд░реНрд╖ 50% рдореЗрдВ рджреЗрдЦрдиреЗ рдкрд░, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ 8,065 рдорд╣рд╛рд╢ / рд╕реЗрдХрдВрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ 100% - 10,511 рдореНрд╣рд╛рд╕ / рд╕реЗрдХрдВрдб рдкрд░ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╢реАрд░реНрд╖ рдХреЗ рд▓рдЧрднрдЧ 50% рдкрд░, рд╣рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ 8.065 / 10.511 ~ 77% рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 100% рдмрдЪреЗ рд╣реИрдВ - 77% = 23%, рдФрд░ 50% рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕ рддрдереНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдбреЗрдореЛрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ: рд╢реАрд░реНрд╖ рдбреЗрдЯрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ

рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдЕрд╕рдВрдЧрддрд┐


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


рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд░рд╡рд┐рд╡рд╛рд░ рд╢рд╛рдо рдХреЛ рдЪреЛрдЯреА

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

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

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдФрд░ рдорд╛рдкрдиреЗ рдХреЗ рдЙрдкрдХрд░рдг


рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рддреЛ рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ / рд╕реЗрд╡рд╛рдПрдВ / рд╕рд╛рдорд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА рд╣рдордиреЗ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдпрд╛ рдХреБрдЫ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред

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

рдкрд░реНрдлрд╝


perf рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ рд╣реИред рдпрд╣ рдПрдХ рдирдореВрдирд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реАрдзреЗ рдУрд╡рд░рд╣реЗрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдУрд╡рд░рд╣реЗрдб рд╕рдорд╛рди рд░реВрдк рд╕реЗ "рд╕реНрдореАрдпрд░" рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рдк рдХреЛ рд╡рд┐рдХреГрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдкрдиреЗ рд╕рднреА рдлрд╛рдпрджреЛрдВ рдХреЗ рд▓рд┐рдП, perf рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдФрд░ JIT рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ "рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рддрд╣рдд" рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, PHP рдХреЛрдб рдХреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ PHP рд╡рд┐рднрд┐рдиреНрди PHP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рд╣рд┐рдд, рдФрд░ рдЕрдВрджрд░ рдХрд┐рддрдиреЗ рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, perf рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рдПрдХ рд╕рдВрдкреАрдбрд╝рди рд╕реНрдерд╛рди рд╕рд╣рд┐рдд рдХрдИ рдЕрдбрд╝рдЪрдиреЗрдВ рдорд┐рд▓реАрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

perf record --call-graph dwarf,65528 -F 99 -p $(pgrep php-cgi | paste -sd "," -) -- sleep 20
perf report


(рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ perf рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ perf рдХреЛ sudo рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред


PHP-FPM рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рд░рд┐рдкреЛрд░реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдЙрджрд╛рд╣рд░рдг

XHProf рдФрд░ XHProf рдПрдЧреНрд░реАрдЧреЗрдЯрд░


XHProf PHP рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдЬреЛ рд╕рднреА рдХреЙрд▓ рдХреЛ рдлрд╝рдВрдХреНрд╢рди / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред Perf рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЖрдкрдХреЛ PHP-code рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЙрд╕реА рд╕рдордп, рдЬреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ)ред

рдиреБрдХрд╕рд╛рди рдореЗрдВ рджреЛ рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд╕рднреА рдорд╛рдк рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЪрд┐рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ;
  • рдУрд╡рд░рд╣реЗрдб, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм Xdebug рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рд╡рд┐рдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рдмрд╛рд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╡рд┐рдХреГрддрд┐ рд╣реЛрддреА рд╣реИ)ред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:

 function child1() { return 1; } function child2() { return 2; } function parent1() { child1(); child2(); return; } for ($i = 0; $i < 1000000; $i++) { parent1(); } 


рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП XHProf рдЖрдЙрдЯрдкреБрдЯ: рдкреЗрд░реЗрдВрдЯ 1 рдмрдЪреНрдЪреЗ 1 рдФрд░ рдЪрд╛рдЗрд▓реНрдб 2 рдХреЗ рдпреЛрдЧ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдЖрджреЗрд╢ рд╣реИ

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ parent1 () рдЪрд╛рдЗрд▓реНрдб 1 () + рдЪрд╛рдЗрд▓реНрдб 2 () рдХреА рддреБрд▓рдирд╛ рдореЗрдВ ~ 500 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреЗ рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЦреНрдп () рдФрд░ рдкреЗрд░реЗрдВрдЯ 1 () рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

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

рдПрдХреНрд╕рдПрдЪрдкреНрд░реЛрдл рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рдХрдо-рдЬреНрдЮрд╛рдд рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрдирдХреЗ рд╕рдорд╛рди рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред

Pinba


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


рдкрд┐рдирдмрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо

рдиреБрдХрд╕рд╛рди рдореЗрдВ рдпрд╣ рддрдереНрдп рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдорд░, рдФрд░ рд╕рдВрдкреВрд░реНрдг рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ, рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд╛рде рд╣реА рдПрдХ рдУрд╡рд░рд╣реЗрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ (рдЬреИрд╕реЗ рдХрд┐ XHProf рдореЗрдВ) рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рдХреГрдд рдХрд░ рд╕рдХрддреА рд╣реИред

phpspy


phpspy рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ (GitHub рдкрд░ рдкрд╣рд▓реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдереА), рдЬреЛ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

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

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд┐рддреНрд░ рдкрд░ рджреЛрдиреЛрдВ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛


рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдзреБрд░реА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:


рдкреНрд░реЛрдлрд╛рдЗрд▓рд░реЛрдВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛
рдЬреНрд╡рд╛рд▓рд╛ рд░реЗрдЦрд╛рдВрдХрди

рдЕрдиреБрдХреВрд▓рди рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг


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

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЕрдиреБрдХреВрд▓рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдФрд░ рдиреЗ рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ PHP 7.0 рдХреЗ рд╕рд╛рде рд╣реБрдЖ рдерд╛, рдЬрдм рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдирд┐рдХрд▓рд╛ред рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдЖрдзреБрдирд┐рдХ рддрдХрдиреАрдХреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ PHP рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдкрд░ рдЕрджреНрдпрддрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, PHP 7.1 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ PHP 7.2 5-12% рддреЗрдЬ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди, рдЕрдлрд╕реЛрд╕, рд╣рдореЗрдВ рдмрд╣реБрдд рдХрдо рджрд┐рдпрд╛ред

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

рдЬрд╝рд╛рд▓рд┐рдм рд╕рдВрдкреАрдбрд╝рди => zstd


рд╣рдо рдмрдбрд╝реЗ рдореЗрдореЗрдХреА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рд╕рдВрдкреАрдбрд╝рди / рдЕрдкрдШрдЯрди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реАрдкреАрдпреВ рд▓рд╛рдЧрдд рдХреЗ рдХрд╛рд░рдг рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рддреАрди рд╕реЗ рдЪрд╛рд░ рдЧреБрдирд╛ рдХрдо рдореЗрдореЛрд░реА рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП zlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдореЗрдордХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░ PHP рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд▓реЛрдЧ рднреА zlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ )ред

рд╕рд╣реА рдореЗрдВ, рдЙрддреНрдкрд╛рджрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдерд╛:

+ 4.03% 0.22% php-cgi libz.so.1.2.11 [.] inflate
+ 3.38% 0.00% php-cgi libz.so.1.2.11 [.] deflate


рд╕рдордп рдХрд╛ 7-8% рд╕рдВрдкреАрдбрд╝рди / рдЕрдкрдШрдЯрди рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рдордиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ zstd рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдкрд░ рд▓рдЧрднрдЧ рджрд╕ рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, ~ 1.1 рдмрд╛рд░ рдЬрдЧрд╣ рдореЗрдВ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рд╣рдореЗрдВ ~ 7.5% рд╕реАрдкреАрдпреВ (рдпрд╣, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ, рд╣рдорд╛рд░реЗ рд╡реЙрд▓реНрдпреВрдо рдкрд░ ~ 45 рд╕рд░реНрд╡рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ) рдмрдЪрд╛рдпрд╛ред

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

IS_ARRAY_IMMUT рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╕рдВрд╢реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ


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

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

  • рдХреНрд░рдорд╛рдВрдХрди / deserialization рд▓рд╛рдЧрдд рд╣реЛрдЧреА;
  • рдмрджрд▓рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдбреЗрдЯрд╛ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛;
  • PHP рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реИред

PHP 7.0 IS_ARRAY_IMMUTABLE рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд░рдгреА рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рд╕рднреА рддрддреНрд╡ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдЬреНрдЮрд╛рдд рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдмрд╛рд░ OPCache рдореЗрдореЛрд░реА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, PHP-FPM рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЗрд╕ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рд╕рдордп рдЦрд░реНрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреА рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЖрдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рд░рдВрддрд░ рд╕рдордп рд▓рдЧреЗрдЧрд╛ (рдЖрдорддреМрд░ рдкрд░ ~ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб)ред

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП: рд╢рд╛рдорд┐рд▓ рдФрд░ apcu_fetch рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 10,000 рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 $t0 = microtime(true); $a = include 'test-incl-1.php'; $t1 = microtime(true); printf("include (%d): %d microsec\n", count($a), ($t1-$t0) * 1e6); $t0 = microtime(true); $a = apcu_fetch('a'); $t1 = microtime(true); printf("apcu_fetch (%d): %d microsec\n", count($a), ($t1-$t0) * 1e6); //include (10000): 1 microsec //apcu_fetch (10000): 792 microsec 

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдСрдкрдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рддреЛ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

 $ cat immutable.php <?php return [ 'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3', ]; $ cat mutable.php <?php return [ 'key1' => \SomeClass::CONST_1, 'key2' => 'val2', 'key3' => 'val3', ]; $ php -d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.opt_debug_level=0x20000 immutable.php $_main: ; (lines=1, args=0, vars=0, tmps=0) ; (after optimizer) ; /home/ubuntu/immutable.php:1-8 L0 (4): RETURN array(...) $ php -d opcache.enable_cli=1 -d opcache.opt_debug_level=0x20000 mutable.php $_main: ; (lines=5, args=0, vars=0, tmps=2) ; (after optimizer) ; /home/ubuntu/mutable.php:1-8 L0 (4): T1 = FETCH_CLASS_CONSTANT string("SomeClass") string("CONST_1") L1 (4): T0 = INIT_ARRAY 3 T1 string("key1") L2 (5): T0 = ADD_ARRAY_ELEMENT string("val2") string("key2") L3 (6): T0 = ADD_ARRAY_ELEMENT string("val3") string("key3") L4 (6): RETURN T0 

рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдУрдкрдХреЛрдб рд╣реИ - рд╕рдорд╛рдкреНрдд рд╕рд░рдгреА рдХреА рд╡рд╛рдкрд╕реАред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рддрддреНрд╡-рджрд░-рддрддреНрд╡ рдЧрдарди рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдПрдХ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдЯреЛрд▓реЙрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ "_" рдФрд░ "\" рд╕рдВрдХреЗрддреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдкрддреНрд░рд╛рдЪрд╛рд░ рдорд╛рдирдЪрд┐рддреНрд░ "рдХрдХреНрд╖рд╛ => рдкрде" рдХреЛ рдкреВрд░реНрд╡-рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╣реА рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЙрд▓ рдореЗрдВ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝-рдСрдЯреЛрд▓реИрдбрд░ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрдЧреАрддрдХрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред

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

рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ / рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рд╕реНрдерд┐рд░ рд╕рд░рдгреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡рд░реНрдЧ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЗрддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИред OPCache рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, PHP рдЗрдВрдЬрди рдХреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдореЛрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛, рдЬреЛ рдЕрдВрдд рдореЗрдВ рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реИрдХрдбрд╝реЛрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд▓реЗ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕рд┐рдореНрдлрдиреА 4.1 рдкрд░ рдПрдХ рдирдИ рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ get_included_files () рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ 310 рдлрд╛рдЗрд▓реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз рд╣рдЬрд╛рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдСрдЯреЛ-рд▓реИрдбрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдВрдкреЛрдЬрд╝рд░.рдЬрд╕рди рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджреВрд░ рдХрд░рдирд╛, рдЬреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдб рдХреА рдПрдХ рд╕реМ рд▓рд╛рдЗрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдордиреЗ рд╕реАрдкреАрдпреВ рдХрд╛ рдПрдХ-рджреЛ рдкреНрд░рддрд┐рд╢рдд рдЬреАрддрд╛ред

рдСрдЯреЛ-рд▓реЛрдбрд░ рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 <?php class A extends B implements C {   use D;   const AC1 = \E::E1;   const AC2 = \F::F1;   private static $as3 = \G::G1;   private static $as4 = \H::H1;   private $a5 = \I::I1;   private $a6 = \J::J1;   public function __construct(\K $k = null) {}   public static function asf1(\L $l = null) :? LR { return null; }   public static function asf2(\M $m = null) :? MR { return null; }   public function af3(\N $n = null) :? NR { return null; }   public function af4(\P $p = null) :? PR { return null; } } 

рд░рдЬрд┐рд╕реНрдЯрд░ рдСрдЯреЛ-рд▓реЛрдбрд░:

 spl_autoload_register(function ($name) {   echo "Including $name...\n";   include "$name.php"; }); 

рдФрд░ рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдмрдирд╛рдПрдВрдЧреЗ:

 include 'A.php' Including B... Including D... Including C... \A::AC1 Including A... Including B... Including D... Including C... Including E... new A() Including A... Including B... Including D... Including C... Including E... Including F... Including G... Including H... Including I... Including J... 

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

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


рдЙрджрд╛рд╣рд░рдг рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реИрдХрдбрд╝реЛрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреА рд╣реИред

OPCache рд╕реЗрдЯрд┐рдВрдЧреНрд╕

рдпрджрд┐ рдЖрдк PHP рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛, рд░рд╕рдорд╕ рд▓реЗрд░рдбреЙрд░реНрдл рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рд┐рдорд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓рдХрд░ рдкрд░рдорд╛рдгреБ рддреИрдирд╛рддреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХреЛ "рдЪрд┐рдкрдХреЗ" рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ opcache.revalidid_path рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ OPCache рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдУрдкреЗрдХ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред .Ru рд╕рдореВрд╣ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ (рдФрд╕рддрди, рдбреЗрдврд╝ рд╕реЗ рджреЛ рдмрд╛рд░) рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдмрдврд╝рд╛рддрд╛ рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ 7-9% рдХрд╛ рд▓рд╛рдн рдорд┐рд▓рд╛)ред

рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  • рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдХреЛ рд╣рд▓ рдХрд░рдирд╛;
  • PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рд╕реНрддреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдмрдВрдж рдХрд░реЗрдВ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд░реАрдбрд▓рд┐рдВрдХ () рдпрд╛ рд░рд┐рдпрд▓рдкрде () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдзреНрдп рдХрд░реЗрдВред

рдпрджрд┐ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдХрдореНрдкреЛрдЬрд╝рд░ рдСрдЯреЛрд▓реИрдбрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ рдЖрдЗрдЯрдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: omposer __DIR__ рдирд┐рд░рдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

OPCache рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдмрджрд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

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

рдПрдкреАрд╕реАрдпреВ рд▓реЙрдХ


рдпрджреНрдпрдкрд┐ рд╣рдо рдпрд╣рд╛рдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреЛрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд▓реЗ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

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


рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛: 16 рдФрд░ 17 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ рдЪреЛрдЯрд┐рдпрд╛рдВ

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ PHP рдХреЗ рд╕рд╛рде рдорд╢реАрдиреЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╡рд╛ рдореЗрдВ рдбрд╛рд▓рдХрд░ред

рдмреИрдЪ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг


рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдЕрднреА рднреА рдЖрд░рдВрднреАрдХрд░рдг рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛, рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛, рд╕рддреНрд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛), рд╕рддреНрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдкрд░ред

рдпрджрд┐ рдЖрдкрдХрд╛ рдмреИрдХрдПрдВрдб рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рд╣реИ, рддреЛ рдХреБрдЫ рдЦрд╛рд╕ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдХреЗ рдПрдХрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

, , . - , . .


Badoo , . PHP-FPM, CPU, , , : IO, CPU .

PHP-FPM тАФ , PHP.

(CPU, IO), . , , , , - , . , . , , .

рдирд┐рд╖реНрдХрд░реНрд╖


. PHP .

:

  • ;
  • ;
  • - , : , ;
  • : (, , );
  • : ;
  • , OPCache PHP, , , ;
  • : (, , PHP 7.2 , );
  • : , .

?

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/hi430722/


All Articles