PHP рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

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

PHP рд╕реНрддрд░ рдкрд░ рд╕рд░рдгрд┐рдпрд╛рдБ рдХреНрдпрд╛ рд╣реИрдВ?


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

рдкрддреНрд░ рдХрд╛ рд▓рд┐рдВрдХ



(рдЪрд┐рддреНрд░ рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢рдЯреЗрдмрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд╡реАред рд╡рд╛рд╕рдВрддреЛрд╕реЗрд╡)

рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдЪрд▓реЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдЦрдкрдд рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдФрд░ рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ:

// time.php $ar = array(); $t = 0; for ($i = 0; $i < 9000; ++$i) { $t = microtime(1); $ar[] = 1; echo $i . ":" . (int)((microtime(1) - $t) * 100000000) . "\n"; } // memory.php $ar = array(); $m = 0; for ($i = 0; $i < 9000; ++$i) { $m = memory_get_usage(); $ar[] = 1; echo $i . ":" . (memory_get_usage() - $m) . "\n"; } 


рдпреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ php time.php > time рдФрд░ php memory.php > memory , рдФрд░ рдЙрди рдкрд░ рд░реЗрдЦрд╛рдВрдХрди php memory.php > memory , рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджреЗрдЦрддреЗ рд╣реИрдВ (рд╕рдордп рдбреЗрдЯрд╛ рдХреЛ рдХрдИ рдмрд╛рд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЧреНрд░рд╛рдл рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрдВрдкреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред


(рдПрдХреНрд╕ рдЕрдХреНрд╖ рдкрд░ - рд╕рд░рдгреА рдореЗрдВ рдПрд▓-рдЯреВрд╡ рдХреА рд╕рдВрдЦреНрдпрд╛)

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

рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?


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

рд╣реИрд╢ рдЯреЗрдмрд▓ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рдорд╛рдиреЛрдВ (рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ), рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ (рд╕рд░рдгреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ current() рд░рд┐рдЯрд░реНрди), рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рд░рдгреА рдмрдХреЗрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдмрд╛рдж рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ), рдФрд░ рдХреБрдЫ рдФрд░ред

рдХреНрдпреЛрдВ
рд╣рдорд╛рд░реЗ рд▓рд┐рдП
рдмрд╛рд▓реНрдЯреА рдХреА рдЬрд░реВрд░рдд рд╣реИ
рдФрд░ рдХрд╣рд╛рдБ
рд╣рдорд╛рд░реЗ рд▓рд┐рдП
рдЙрдиреНрд╣реЗрдВ рд▓реЗрдЯрд╛рдУ


рд╣рд╢ рдЯреЗрдмрд▓ рдореЗрдВ рджреЛ рдореБрдЦреНрдп рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рдкрд╣рд▓реА рд╣реИрд╢ рдЯреЗрдмрд▓ рд╣реИ рдФрд░ рджреВрд╕рд░реА рд╣реИ рдмрдХреЗрдЯ (рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╛рд▓реНрдЯреА, рддрд╛рдХрд┐ рдКрдм рди рд╣реЛ)ред

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

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

рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдмрд╛рд▓реНрдЯреА рдХреЛ рд╣реИрд╢ рдЯреЗрдмрд▓ рдореЗрдВ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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


рдорд╛рд╕реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡реНрдпреВрдЕрд░ рдХреЗ рд╕рд░рдгреА рдореЗрдВ 4 рддрддреНрд╡ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдорд╛рд╕реНрдХ рддреАрди рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ 11 рд╣реИред
рдЕрдм, рдЕрдЧрд░ рд╣рдореЗрдВ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ 123 (1111011) рдЬреИрд╕рд╛ рдирдВрдмрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдорд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ 3 (3 & 123) рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕ рдирдВрдмрд░ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рд╣рд╛рд╢ рдЯреЗрдмрд▓ рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ 54 рдФрд░ 90 рдХреЗ рд╕рд╛рде рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдорд╛рд╕реНрдХ 3 рдХреЗ рд╕рд╛рдеред рдФрд░ рдпреЗ рджреЛрдиреЛрдВ рдЪрд╛рдмрд┐рдпрд╛рдВ рдорд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рджреЛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдВрдЧреАред

рдЯрдХреНрдХрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?


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



рдЖрдЗрдП 54 рдФрд░ 90 рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рдФрд░ рдореБрдЦреМрдЯрд╛ 3. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ 54 рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдЪрдЯреА рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

 { nTableSize: 4, //      nTableMask: 3, //  nNumOfElements: 1, //    HT nNextFreeElement: 55, //    ,         ( ) ..., arBuckets: [ NULL, NULL, 0xff0, // ,     Bucket,      NULL ] } 0xff0: { h: 54, //   nKeyLength: 0, //   ,      pData: 0xff1, //   ,      zval ... } 


рдЕрдм 90 рдХреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ, рдЕрдм рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 { nTableSize: 4, nTableMask: 3, nNumOfElements: 2, nNextFreeElement: 91, ..., arBuckets: [ NULL, NULL, 0xff0, //       Bucket NULL ] } 0xff0: { h: 54, pListNext: 0xff2, //      Bucket   ( ) pNext: 0xff2, //     Bucket     ... } 0xff2: { h: 90, pListLast: 0xff0, //    pLast: 0xff0, //       ... } 


рдЕрдм nTableSize рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рддрддреНрд╡ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрдЧрд╛ рдЬрдм nNumOfElements> nTableSize)ред
рдЪрд╛рдмрд┐рдпрд╛рдБ 0, 1, 3 рд╡рд╛рд▓реЗ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ (рдЬреЛ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдереЗ, рдФрд░ рдорд╛рд╕реНрдХ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╡реЗ рд╡рд╣реА рд░рд╣реЗрдВрдЧреЗ), рдпрд╣реА рд╣реЛрдЧрд╛:

 { nTableSize: 8, //     (    ) nTableMask: 7, nNumOfElements: 5, nNextFreeElement: 91, //     ..., arBuckets: [ //       ,         0xff3, // key = 0 0xff4, // key = 1 0xff2, // key = 90 -     90 (  90 & 7 = 2),       6-  0xff5, // key = 3 NULL, NULL, 0xff0, // key = 54 NULL ] } 0xff0: { h: 54, pListNext: 0xff2, //    ,     pNext: NULL, //     ... } 0xff2: { h: 90, pListNext: 0xff3, pListLast: 0xff0, pLast: NULL, ... } 0xff3: { h: 0, pListNext: 0xff4, pListLast: 0xff2, ... } 0xff4: { h: 1, pListNext: 0xff5, pListLast: 0xff3, ... } 0xff5: { h: 3, pListNext: NULL, //     pListLast: 0xff4, ... } 


рд╕рд░рдгреА рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рд░рд┐рд╣рд╛рд╢ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╕рднреА рдореМрдЬреВрджрд╛ рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ (pListNext рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ (рдЯрдХрд░рд╛рд╡реЛрдВ) рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реБрдП, рдФрд░ arBuckets рдореЗрдВ рдЙрдирдХреЗ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рддрддреНрд╡ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ? рдкрд┐рдЫрд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛:

рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдпрд╛ рддреЛ pNext рдореЗрдВ рдмрд╛рд▓реНрдЯрд┐рдпрд╛рдБ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреА рд╣реИрдВ (рддрдм рдиреЛрдЯрд┐рд╕ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛), рдпрд╛ рдЬрдм рддрдХ рдПрдХ рдореИрдЪ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

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

рд╡реИрд╕реЗ, рдпрд╣рд╛рдБ рдореИрдВрдиреЗ PHP рдореЗрдВ рд╣реА рдПрдХ рд╣реИрд╢ рдЯреЗрдмрд▓ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдЦреИрд░, рдпрд╣ рд╣реИ рдХрд┐, PHP рдореЗрдВ PHP рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ =)

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


All Articles