рд╡рд┐рдВрдбреЛрдЬ рдкрд╛рд░реНрдЯ 2 рдХреЛ рдзреАрдорд╛ рдХрд░рдирд╛: рдкреНрд░реЛрд╕реЗрд╕ рдмрдирд╛рдирд╛



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

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдЦ рдЖрдкрдХреЛ рдпрд╣ рднреА рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреИрд╕реЗ рдмрдЪрд╛ рдЬрд╛рдПред

рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд░реНрд╖ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдорд┐рд▓реА рдереА, рдФрд░ рд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдЦреЛрдЬрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╣рд▓ рдорд┐рд▓рд╛ред рд╡рд┐рдВрдбреЛрдЬ рдзреАрдорд╛ рдХрд░рдиреЗ рдкрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:


рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ


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

  1. рдЕрдирд┐рдпреЛрдЬрд┐рдд рдХреНрд░рдорд╛рдВрдХрди, рдЬреЛ рд╕рдВрдкреВрд░реНрдг рд╣реИрдВрдЧ UI рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ: "24-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ред "
  2. рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рдРрдб-рдСрди рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд▓реАрдХ: "рдЬрд╝реЛрдВрдмреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреА рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛ рдЬрд╛рддреА рд╣реИ ред "
  3. рд╡рд┐рдВрдбреЛрдЬ рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рд╣реА рддреНрд░реБрдЯрд┐: "рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐? рд▓рд┐рдВрдХрд░ рддреНрд░реБрдЯрд┐? рд╡рд┐рдВрдбреЛрдЬ рдХрд░реНрдиреЗрд▓ рдмрдЧред "
  4. рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдлрд▓рддрд╛: "рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рдзреАрдорд╛ рдХрд░рдирд╛, рднрд╛рдЧ 1: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ ред "
  5. рдФрд░ рдпрд╣: рдПрдХ рдЕрдЬреАрдм рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рджреБрд░реНрд▓рдн рджреБрд░реНрдШрдЯрдирд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ


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

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

рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдмрд╛рдж рдореЗрдВ рдЖрдпрд╛, рддреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рд╣реЛ рдЧрдИред рд▓рдЧрднрдЧ 7000 рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдереАред

рдУ (рдПрди ^ 2) рдЖрдорддреМрд░ рдкрд░ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ


рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреЛрдИ рднреА рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд▓реЙрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд╛рдо рджреЗрдирд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ gomacc.exe.0.dat, gomacc.exe.1.dat, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХрд┐рд╕ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рдВрднрд╡ рдирд╛рдо / рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдПрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, gomacc.exe.0.dat рдирд╛рдордХ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ gomacc.exe.1.dat рдФрд░ рдЗрд╕реА рддрд░рд╣ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ рд╕рдордп рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдЦреАрдп рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдУ (рдПрди ^ 2) рд╕рдВрдЪрд╛рд▓рди рд▓рдЧрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ O (N ^ 2) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдмрд╣реБрдд рдзреАрдореЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдХрд┐ N рд╣рдореЗрд╢рд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯрд╛ рд░рд╣рддрд╛ рд╣реИред

рд╕реНрдерд┐рддрд┐ рдХрд┐рддрдиреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧреА рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдорд╛рдк рд▓рд┐рдпрд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд▓рдЧрднрдЧ 80 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб (80 ╬╝s рдпрд╛ 0.08 ms) рд▓рдЧрддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рддреНрд╡рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди 1000 рд╡реАрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1000 рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ 80 рдПрдордПрд╕ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдФрд░ рднреА рдЕрдзрд┐рдХред

Chrome рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд▓рдЧрднрдЧ 30,000 рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд░рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ, 0.08 рдПрдордПрд╕ рдХреА рд╕реНрдХреИрдирд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдЧрд▓реЗ рдЙрдкрд▓рдмреНрдз рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдЦреАрдп рдЦреЛрдЬ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдПрди ^ 2) / 2 рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реИ, рдЕрд░реНрдерд╛рдд 30,000 * 30,000 / 2, рдЬреЛ 450 рдорд┐рд▓рд┐рдпрди рд╣реИред рдЪреВрдБрдХрд┐ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрдпрд╛рдкрди 0.08 рдПрдордПрд╕ рд▓реЗрддрд╛ рд╣реИ, рдпрд╣ 36 рдорд┐рд▓рд┐рдпрди рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдпрд╛ 36,000 рд╕реЗрдХрдВрдб рд╣реИред рдпрд╣реА рд╣реИ, рдХреНрд░реЛрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рдордп, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдкрд╛рдВрдЪ рд╕реЗ рджрд╕ рдорд┐рдирдЯ рд╣реИ, рдПрдХ рдФрд░ рджрд╕ рдШрдВрдЯреЗ рддрдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред

рдЕрд░реЗред

рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 7000 рдмрд╛рд░ рдПрдХ рдЦрд╛рд▓реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдХрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ - рдФрд░ рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ O (n ^ 2) рд╡рдХреНрд░ рджреЗрдЦрд╛:



рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЕрдЧрд░ рдЖрдк ETW рдЯреНрд░реЗрд╕ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдФрд╕рдд CreateFile рдХреЙрд▓ рд╕рдордп рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд▓рдЧрднрдЧ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдкрд╛рдВрдЪ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╣реИ (рдФрд╕рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ 4.386 ╬╝s рдиреАрдЪреЗ)



рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ I / O рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдкрд░ рдХреЗрд╡рд▓ ETW рдкреНрд░рддрд┐рдмрдВрдз рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ I / O рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ Ntfs.sys рдХреЗ рдКрдкрд░ FLTMGR.SYS рдФрд░ ntoskrnl.exe рд╕рд╣рд┐рдд рдХрдИ рдФрд░ рд╕реНрддрд░ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдордВрджреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ - CPU рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдлрд╝ рдкрд░ CPU рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ 548 рдПрдордПрд╕ рдХреЗ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рд▓рдЧрднрдЧ 6850 рд╕рдВрднрд╡ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдореЗрдВ рд╣рд░ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ:



рдХреНрдпрд╛ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдбрд┐рд╕реНрдХ рдорджрдж рдХрд░реЗрдЧреА?


рдирд╣реАрдВред

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

рдЦреЛрдЬ


.Dat рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП% userprofile% \ appverifierlogs рдЦреЛрдЬ рдХрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк ETW рдЯреНрд░реЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдордВрджреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рд╣реИред

рдирд┐рд░реНрдгрдп


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЙрдкрд╛рдп рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд▓реЙрдЧ рдХреЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХ рдХреЛ рднрд░рдирд╛ рднреА рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрд╖рдо рд╣реИ:

appverif.exe -logtofile disable

рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд░реАрдХреНрд╖рдг рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рдЧрднрдЧ рддреАрди рдЧреБрдирд╛ рддреЗрдЬ (!) рд╕реЗ рд╢реБрд░реВ рд╣реБрдИрдВ, рдФрд░ рдордВрджреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред 7000 рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ 1.5 рдорд┐рдирдЯ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, 40 рдорд┐рдирдЯ рдореЗрдВ рдирд╣реАрдВред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╕рд░рд▓ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХреА рдЧрддрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

  • рдЖрдо рддреМрд░ рдкрд░ 200 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (5 рдПрдордПрд╕ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛)
  • рдЖрд╡реЗрджрди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде 75 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдХреНрд╖рдо рд▓реЗрдХрд┐рди рд▓реЙрдЧрд┐рдВрдЧ рдЕрдХреНрд╖рдо (13 рдПрдордПрд╕ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛)
  • рдЖрд╡реЗрджрди рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде 40 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдФрд░ рдкрд╣рд▓реЗ рд▓реЙрдЧрд┐рдВрдЧ рдЪрд╛рд▓реВ рд╣реБрдЖ ... (25 рдПрдордПрд╕ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рд╕рдордп рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдирдВрдд рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ)
  • рдХреНрд░реЛрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж 0.4 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб

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

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

рд╕рд╣рд╛рдпрдХ рд╕реВрдЪрдирд╛


рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдмрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрдВрдд рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕реЗ ETW рдЯреНрд░реЗрд╕ рдпрд╣рд╛рдВ рд╣реИ ред

рдЕрдиреНрдп рд▓рд┐рдВрдХ:

рдЪрд╛рд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХрдЪреНрдЪрд╛ рд╕рдордп рдбреЗрдЯрд╛ред

рд░реЗрдбрд┐рдЯ рдкрд░ рдЪрд░реНрдЪрд╛

рд╣реИрдХрд░ рд╕рдорд╛рдЪрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛

рдЕрдиреНрдп O (n ^ 2) рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬреЛ рдкреИрдбрд▓рд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХреНрд╕реАрдбреЗрдВрдЯрд▓реА рдХреНрд╡рд╛рдбреНрд░реЗрдЯрд┐рдХ рджреЗрдЦреЗрдВ

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

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


All Articles