
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реА рдЦреЛрдЬ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреАред рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЬреЛ
рдиреНрдпреВрдирддрдо рдлрд┐рд▓реНрдЯрд░ рдФрд░
рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд╣рд▓реБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди
рдордзреНрдпрдо рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз, рдЬрд╣рд╛рдВ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ, рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛?
Hh.ru рдкрд░ рдЦреЛрдЬ рд╣реИ:
- 400 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдз;
- рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдЕрдкрдбреЗрдЯреЗрдб рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ 26 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ;
- 3x рдкреНрд░рддрд┐рдХреГрддрд┐ рджрд░ (рдЕрд╕рдлрд▓рддрд╛ рдЕрддрд┐рд░реЗрдХ);
- 5x рдкреНрд░рджрд░реНрд╢рди рдорд╛рд░реНрдЬрд┐рдиред
рдФрд░ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ 15% рдХреЗ рдХреБрд▓ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рднреА рдЖрдХрд░реНрд╖рдг рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдХреНрд╖рдо рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ "рд╕рдХреНрд░рд┐рдп" рд░рд┐рдЬреНрдпреВрдореЗ рдЗрдВрдбреЗрдХреНрд╕ рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдпрд╣
рдирд┐рдпреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред
Hh.ru рдЦреЛрдЬ рд▓реНрдпреВрд╕рд┐рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣рдордиреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХрд╛рдлреА рдХреЛрдб рд▓рд┐рдЦреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреВрд▓рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдЦреЛрдЬ рдкреНрд░рджрд░реНрд╢рди рд▓реНрдпреВрд╕рд┐рди рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ "рдорд╛рдереЗ" рдХреЛ рддреНрд╡рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред 3.1.0 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рд▓реНрдпреВрд╕реАрди рдореЗрдВ, рдЦрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрдИ рдереНрд░реЗрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдерд╛ (рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 4.3 рдореЗрдВ) рдПрдХ рдЯрд┐рдкреНрдкрдгреА "TODO: рдХреНрдпрд╛ рд╣рдореЗрдВ рдпрд╣ рдкрд┐рд░реЛрдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ...?" рдХрд▓реЗрдХреНрдЯрд░ рд╕рд┐рдВрдХ рд╕рд┐рдВрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╣рдореЗрд╢рд╛ рд╕рд┐рдВрдЧрд▓ рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ тАЭред
рдФрд░ рд╕рдВрдЧреНрд░рд╛рд╣рдХ (рдПрдХ рддрдВрддреНрд░ рдЬреЛ "рдПрдХ-рдПрдХ рдХрд░рдХреЗ" рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ) рдПрдХ рдЦрдВрдб рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рджреЗрд╢ рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдорд╛рд░рд╛ рдкрд╣рд▓реВ рдФрд░ рд╕реЙрд░реНрдЯ рдХреЛрдб рдЙрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреЛрдб рдЕрд▓рдЧ-рдерд▓рдЧ рдерд╛, рдбреЗрдЯрд╛ рдХреЛ рдХрдИ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдХ рддреБрд▓рдирд╛ рд░реИрдЦрд┐рдХ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдХреА рдЧрдИ рдереАред рдЙрдиреНрд╣реЛрдВрдиреЗ рддреНрд╡рд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдХрд╛рд░реНрдп рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рдФрд░ рдХрд╛рдо рдЙрдмрд▓рдиреЗ рд▓рдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦреА:
- рд╣рдо рдХрдИ рдЦрдВрдбреЛрдВ рд╕реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ;
- рд╕рдорд╛рдирд╛рдВрддрд░ рдЦрдВрдб рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЛ рд▓рд╛рдЧреВ / рд╕рдХреНрд╖рдо рдХрд░рдирд╛;
- рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдПрди рдмрд░рд╛рдмрд░-рдЖрдХрд╛рд░ рдХреЗ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ;
- рд▓рд╛рднред
рдЖрдЗрдЯрдо 1. рд╕рдВрдЧреНрд░рд╛рд╣рдХ
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпреЛрдЬрдирд╛ рдХреЗ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреЛ рдПрдХ рдРрд╕реЗ рдХрд╛рд░реНрдп рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рд╕реЗ рдХреЛрдИ рд╕реАрдзрд╛ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдПрдХ рдРрд╕рд╛ рддрдВрддреНрд░ рдорд┐рд▓рд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рдХрдИ рд╕реНрддрд░реЛрдВ рдкрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪрд╛рд░ рд╕реНрддрд░ рд╣реИрдВ: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЕрдиреБрдХреНрд░рдорд┐рдд, рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ, рдЦрдВрдб)ред

рдмрд┐рдВрджреБ 2. рдЦрдВрдбреЛрдВ рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдЖрдШрд╛рдд
рдореИрдВ рдЗрд╕ рдкрд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд IndexSearcher рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдереА:
public void search(Weight weight, Filter filter, Collector collector) throws IOException {
рдЗрдзрд░, рдЦрдВрдбреЛрдВ рдХреЗ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ, рдХрд▓реЗрдХреНрдЯрд░ рдХрд▓реЗрдХреНрдЯрд░ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдЕрдЧрд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИред рдХрд╕реНрдЯрдорд░ рдХреА рд╕реВрдЪреА (...) рдФрд░ рдлрд┐рд░ рд╕реНрдХреЛрд░рд░ рдХреЛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдорд┐рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ "рдлреАрдб" рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдРрд╕реЗ рдЦрдВрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╕рднреА рдЖрдХрд░реНрд╖рдг рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ: рд╕рдорд╛рдирд╛рдВрддрд░ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде, рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд┐рд╕ рдЦрдВрдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╕рд░рд▓ рдерд╛: рдПрдХ рд╕реБрдкрд░ рдХрд▓реЗрдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛:
public interface ParallelCollector { Collector createPartialCollector(); }
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, IndexSearcher рдХрд╛ рд╕рдВрд╢реЛрдзрди рд╕рд░рд▓ рдирд┐рдХрд▓рд╛:
public void search(final Weight weight, final Filter filter, final ParallelCollector parallelCollector) throws IOException { final CountDownLatch latch = new CountDownLatch(subReaders.length); final AtomicReference<Throwable> exceptionReference = new AtomicReference<Throwable>(); for (int i = 0; i < subReaders.length; i++) { final int subreaderDocBase = docStarts[i]; final IndexReader subReader = subReaders[i]; executor.submit(new Runnable() { @Override public void run() { try { Collector collector = parallelCollector.createPartialCollector(); collector.setNextReader(subReader, subreaderDocBase); Scorer scorer = (filter == null) ? weight.scorer(subReader, !collector.acceptsDocsOutOfOrder(), true) : FilteredQuery.getFilteredScorer(subReader, getSimilarity(), weight, weight, filter); if (scorer != null) { scorer.score(collector); } } catch (Throwable t) { exceptionReference.compareAndSet(null, t); throw new RuntimeException(t); } finally { latch.countDown(); } } }); } try { latch.await(); } catch (InterruptedException e) { throw new RuntimeException(e); } Throwable possibleException = exceptionReference.get(); if (possibleException != null) { if (possibleException instanceof RuntimeException) { throw (RuntimeException) possibleException; } else if (possibleException instanceof IOException) { throw (IOException) possibleException; } else { throw new RuntimeException(possibleException); } } }
рдордж 3. рдЦрдВрдбреЛрдВ рдХрд╛ рдЯреВрдЯрдирд╛
Lucene рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЦрдВрдб рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд▓реБрд╕рд┐рдирд╛ рдЪрд╛рд╣рддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд▓рд╢ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдЫреЛрдЯрд╛ рдЦрдВрдб рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддрдм, рдорд░реНрдЬрдкреЙрд▓рд┐рд╕рд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдЦрдВрдбреЛрдВ рдХреЛ рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬрдм рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдкрдбреЗрдЯ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЫреЛрдЯреЗ рдЦрдВрдбреЛрдВ рдХреА рдкреВрдВрдЫ рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИред
рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдорд╣рд╛рди рд╣реИрдВ: рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдзрд┐рдХрддрдо рд╕реЗрдЧрдореЗрдВрдЯ рд╕рд╛рдЗрдЬ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рджрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ - рд╕реЗрдЯрдореИрдХреНрд╕рдорд░реНрдЬрд╝ рдПрдордмреА + рд╕реЗрдЯрдореИрдХреНрд╕рдорд░реНрдЬрд╝ рдПрдордмреАрдлрд╝реЛрд░рдлреЙрд░рдореЗрдВрд╕ рдореИрд░реЗрдЬ рдиреЗ рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред
рддреАрд╕рд░реЗ рдЖрдЗрдЯрдо рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрдирд╕ рдЗрдВрдбреЗрдХреНрд╕ рдЕрдиреБрдХреВрд▓рди рддрдВрддреНрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд░рд╣рд╛ рдерд╛ред рд▓реНрдпреВрд╕реАрди рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╕рдордп рдХреЗ рд╕рд╛рде, рдХрдИ "рдЫреЗрдж" рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд╕реВрдЪрдХрд╛рдВрдХ рд╕реВрдЬ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрд╣реБрдд рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕рд╕реЗ рд╕рдордп-рд╕рдордп рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд░реНрдЬрдбреЗрд▓реЗрдЯреНрд╕ (рдкреВрд░реНрд╡ рдореЗрдВ рдПрдХреНрд╕рдкреЗрдиреНрдбреЗрдбреЗрд▓реЗрдЯреНрд╕) рдФрд░ рдлреЛрд░реНрд╕рдорд╛рд░реНрдЬ (рдкреВрд░реНрд╡ рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝) рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреБрд░рд╛рдиреЗ (рд╕рдВрднрд╡рддрдГ рдХрдИ) рд╕реЗ "рд▓рд╛рдЗрд╡" рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдПрдХ рдирдП рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рд╕реНрдХ I / O рдФрд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдСрдкрд░реЗрд╢рди рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИред
рдЫреЛрдЯреЗ рдЦрдВрдб рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд▓рд╛рдЧрдд рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдо рдкрдбрд╝реЛрд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдЗрд╕рд▓рд┐рдП, рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдЦреЛрдЬ рдФрд░ рдХрдИ рдЫреЛрдЯреЗ рдЦрдВрдб рдорд┐рд▓реЗред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╣реИ?
- рддреЗрдЬрд╝ рдЦреЛрдЬред рдЕрдм рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 95% рдЦреЛрдЬ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИ, рдФрд░ рд░рд┐рдЬреНрдпреВрдореЗ рдХреЗ рд▓рд┐рдП - 70 рдорд┐рд▓реАрд╕реЗрдХрдВрдбред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреНрд░рдорд╢рдГ 30 рдФрд░ 270 рдерд╛ред
- рд▓реНрдпреВрд╕реАрди рдореЗрдВ рдПрдХ рдкреИрдЪ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рд▓реЗрдХрд┐рди рдореИрдВ "рдХреЛрдб рдХреЛ рдХрдВрдШреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ")ред
- рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдиреБрдХреВрд▓рди рддрдВрддреНрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ред
рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо
рдЕрдВрддрд░рд╛рд▓ - 2 рд╕рдкреНрддрд╛рд╣ред
рд▓рд╛рд▓ рд░реЗрдЦрд╛ рдереА, рдиреАрд▓реА рд░реЗрдЦрд╛ рд╣реИ, Y рдЕрдХреНрд╖ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╣реИред
50 рд╡реАрдВ рдорд╛рддреНрд░рд╛рддреНрдордХ, рдордзреНрдпрдо рдХрдард┐рдирд╛рдИ рдЦреЛрдЬ:

рдФрд░ 95 рд╡реАрдВ рдорд╛рддреНрд░рд╛рддреНрдордХ, рдЕрдзрд┐рдХрддрдо рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЦреЛрдЬ рдХреНрд╡реЗрд░реА:
