рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреАрдмрдЧ рдХрд░рдирд╛ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдирд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рд╣реЛрдмреЗ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдЬреЛ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЬрдЯрд┐рд▓ рдкрд╣рд▓реБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдкрд╛рдардХ рд╣реИрдВ рдЬреЛ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдХрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ "24 рдШрдВрдЯреЛрдВ рдореЗрдВ PHP" рд╕реЗ рдкрд╣рд▓рд╛ рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдПрдХ рдЧрдВрднреАрд░ рд╕реНрддрд░ рдкрд░ рд╡рд┐рдХрд╛рд╕, рдФрд░ рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

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

HTML рдХреЛрдб рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреА рд╣реИред

рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдореЗрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд┐рдП рд╣реИрдВред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ "рдХреНрд▓рд╛рд╕рд┐рдХ" рддрд░реАрдХрд╛ alert рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЙрд╕рдХреЗ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдХрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП print_r рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рджреЗрдЦреА рдереАред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:
 function print_r(variable) { if (variable instanceof Array || variable instanceof Object) { var key; for (key in variable) alert(key + ' => ' + variable[key]); } else { alert(variable); } } 


рдмреЗрд╢рдХ, рднрд╛рд╖рдг рдХреА рдХреЛрдИ рд░реВрдкрд░реЗрдЦрд╛ рдЖрдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рдереАред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдХрдВрд╕реЛрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рд╣реИред

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

рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

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



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



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



рд╕рдВрд╕реНрдХрд░рдг 10 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдХ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рдЖрдкрдХреЛ HTML рдХреЛрдб рдФрд░ CSS рдЧреБрдгреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ HTML рдЯреИрдм рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред



HTML рдХреЛрдб рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, Html Validator рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдорддреМрд░ рдкрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдЗрдЯ рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда habrahabr.ru рдкрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд╕ рдЗрд╕рдХреЗ рдЖрдЗрдХрди рдХреЛ рдкреЗрдЬ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

Google Chrome рдФрд░ Safari

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



рдХреНрд░реЛрдо рдореЗрдВ, рдЗрд╕реЗ Ctrl+Shift+I рдпрд╛ рд╕рд┐рд░реНрдл F12 рджрдмрд╛рдХрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдлрд╛рд░реА рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЯреВрд▓ рдореБрдЦреНрдп рдореЗрдиреВ рдХреЗ "рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ" рдЖрдЗрдЯрдо рдпрд╛ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ Ctrl+Alt+I

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

рдУрдкреЗрд░рд╛

рдУрдкреЗрд░рд╛ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рднреА рд╣реИ, рдЬрд┐рд╕реЗ "рдУрдкреЗрд░рд╛ рдбреНрд░реИрдЧрдирдлреНрд▓рд╛рдИ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ Ctrl+Shift+I рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ Ctrl+Shift+I рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ WebKit рд╣рдорд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдорд╛рди рдХреНрд╖рдорддрд╛рдПрдВ рдФрд░ рдлрд╛рдпрджреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдХрдо рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рдХреЙрдорд░реЗрдб рд╣реЙрдо рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ , рдУрдкреЗрд░рд╛ рдХреЗ рдкрд╛рд╕ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддреНрдпрд╛рдкрди рдкреГрд╖реНрда рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд╛рдзрди рд╣реИ редw3.org ред рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо "рд╡реЗрдм рдорд╛рдирдХреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ" рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдУрдкреЗрд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ HTML рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рддрдирд╛рд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдорд╛рдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░

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



рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ 7-7 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЬрд┐рд╕ рдкрд░ рдХреЛрдбрд░ рдФрд░ рдЬреЗрдПрд╕-рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЖрдБрд╕реВ рдХреЗ рд╕рдореБрджреНрд░ рдлреИрд▓ рдЧрдП, рдРрд╕реЗ рдХреЛрдИ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рддреАрд╕рд░рд╛ рдкрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рд╣реИ, Companion.JS, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдЦ рдерд╛ ред рдмреЗрд╢рдХ, рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рдЯреВрд▓ рд╕реЗ рдХрд╛рдлреА рдХрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреВрд▓ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо "рдЕрд▓рд░реНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбреАрдмрдЧрд┐рдВрдЧ" рд╕реЗ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреЙрдорд░реЗрдб рдПрдЯреАрдбреА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЗрди рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓рдмрд╛рд░ рдирд╛рдордХ рдПрдХ "рджреЗрд╢реА" рдЯреВрд▓ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА: www.microsoft.com/download/en/details.aspx?id=18359

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

рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХреЛрдб


Xdebug

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд╣рдордд рдереЗ, рд╣рдо рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╕рд░реНрд╡рд░ рдкрд░ PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ "рдХреНрд▓рд╛рд╕рд┐рдХ" рдбрд┐рдмрдЧрд┐рдВрдЧ рд╡рд┐рдзрд┐ echo , print_r рдФрд░ var_dump , рд▓реЗрдХрд┐рди рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рднреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдШрд░реЛрдВ рдореЗрдВ - рдПрдХреНрд╕рдбреЗрдмрдЧ ред рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╕рдВрд╕реНрдерд╛рди рдореЗрдВ рдЕрдзреНрдпрдпрди рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ "рдбреЗрд▓реНрдлреА рдореЗрдВ рдЬреИрд╕рд╛ рдерд╛" рджреЗрдЦрд╛ред

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

рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ 9000) рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдИрдбреАрдИ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

XHProf

рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

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

рд╕реНрдерд╛рдкрдирд╛

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

 #   wget http://pecl.php.net/get/xhprof-0.9.2.tgz #   tar -xvf xhprof-0.9.2.tgz #   ,     cd xhprof-0.9.2/extension/ #     phpize ./configure make make test #    checkinstall 

xhprof.ini рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди xhprof.ini рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:

[xhprof]
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/xhprof.so
;
xhprof.output_dir="/var/log/xhprof/"


рд░реВрдкрд░реЗрдЦрд╛

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

рд╣рдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рдЖрд╡реЗрджрди рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 //  ,   //    ,     xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); /* *    */ //  ,  , //     $xhprofData = xhprof_disable(); include_once XHPROF_DIR.'/xhprof_lib/utils/xhprof_lib.php'; include_once XHPROF_DIR.'/xhprof_lib/utils/xhprof_runs.php'; $xhprofRuns = new XHProfRuns_Default(); $namespace = 'some-unique-name'; $runId = $xhprofRuns->save_run($xhprofData, $namespace); echo "<!-- ", $runId, ' ', $namespace, " -->\n"; 

рдпрд╣рд╛рдВ рдирд┐рд░рдВрддрд░ XHPROF_DIR рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрд╕реА рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ $XHPROF_DIR/xhprof_html/ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╕реНрдерд╛рди рдкрд░ рд░рдЦрд╛, рдФрд░ рдпрд╣ example.com/system/xhprof/ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдлрд┐рд░ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

example.com/system/xhprof/?run=%runId%&source=%namespace%

рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:


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

 $needProfiler = (mt_rand(0, 100) < 10 or isset($_COOKIE['xhprof'])); if ($needProfiler) xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЧреНрд░рд╛рд╣рдХреЛрдВ рдпрд╛ рд╕рдВрджреЗрд╣ рд╕реЗ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордпрд╛рд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд░реВрдкрд░реЗрдЦрд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред namespace рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреМрди рд╕рд╛ рднрд╛рдЧ (рдХреМрди рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдХрдВрдЯреНрд░реЛрд▓рд░, рдПрдХреНрд╢рди) рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ SQL рдХреНрд╡реЗрд░реАрдЬрд╝

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

 /** *  * @param string $sql  * @param array $params  * @param string $query   * @return array  */ public function query($sql, array $params = array(), &$query = '') { $start = microtime(TRUE); //  ,  ""  $stop = microtime(TRUE); $time = $stop - $start; $this->_addProfilerData($sql, $time); //   } private function _addProfilerData($query, $time) { if (is_array(self::$profilerData)) { self::$profilerData[] = array( 'query' => $query, 'time' => $time ); } } public function __destruct() { if (is_array(self::$profilerData)) { $this->_writeProfilerData(); self::$profilerData = FALSE; } //    } private function _writeProfilerData() { $values = array(); foreach (self::$profilerData as $row) { $query = mysql_real_escape_string($row['query'], $this->con); $time = (float)$row['time']; $hash = crc32($row['query']); $values[] = "($hash, '$query', $time)"; } if ($values) { $strValues = implode(', ', $values); $sql = "INSERT DELAYED INTO `profiler_queries` (`query_hash`, `query`, `work_time`) VALUES $strValues"; @mysql_query($sql, $this->con); } } 

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

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


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

рд╕рдВрджрд░реНрдн


  1. рд╣рдо рдХрдВрд╕реЛрд▓ рдХреЛ рдкреВрд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
  2. рдлрд╛рдпрд░рдмрдЧ: рднрд╛рдЧ 1 - рдХрдВрд╕реЛрд▓
  3. рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди
  4. IE рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдмрдЧрд░
  5. PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ xdebug рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХрд░рдирд╛
  6. PHP рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ
  7. рдкрд┐рдирдмрд╛ - рд░реАрдпрд▓-рдЯрд╛рдЗрдо php рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ ( рдЯреНрд░реВрдиреЗрдЯрд░рд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд)
  8. Webgrind - Xdebug рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╡реЗрдм рдлреНрд░рдВрдЯреЗрдВрдб ( Truezemez рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ )
  9. рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓рдмрд╛рд░
  10. PHP рдХреЗ рд▓рд┐рдП XDEBUG рд╡рд┐рд╕реНрддрд╛рд░
  11. XHProf (GitHub)

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


All Articles