Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 104

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² слСдуСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня содСрТали ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Π° Π½Π΅ ΠΊΠΎ встроСнному ΠΊΠΎΠ΄Ρƒ. Если ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ структура Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Π° Ρ‚Π°ΠΊΠΈΠΌ способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простым для понимания.

ИспользованиС ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ΠΎΠ² Π΅Ρ‰Π΅ большС проясняСт ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ссли Π² мСньшСй стСпСни Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ способы накоплСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈ Π² большСй стСпСни ΠΊΠ°ΠΊ способы опрСдСлСния закономСрности, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ измСняСтся ΠΊΠ°ΠΊ функция ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Π°ΠΊΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области, частота процСссора, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ диска, Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти, оптимизация компилятора ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹. НСобходимо ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ модСль для Π΄Π°Π½Π½Ρ‹Ρ… чисСл, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ R, ΠΈΠ»ΠΈ качСствСнный коммСрчСский инструмСнт, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ MATHLAB.

ЕстСствСнноС сглаТиваниС Π΄Π°Π½Π½Ρ‹Ρ…, опрСдСляСмоС модСлью, характСризуСтся выявлСниСм Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ΠΌ второстСпСнных, связанных с ΡˆΡƒΠΌΠΎΠΌ. НапримСр, ΠΏΡ€ΠΈ использовании кубичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ обращСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² MATHLAB Π½Π° случайных ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… ΠΎΡ‚ 10x10 Π΄ΠΎ 1000x1000, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ фактичСски получаСтся 3 ΠΊΡƒΠ±Π° с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ областям "Π² кэшС", "Π² памяти, Π½ΠΎ Π²Π½Π΅ кэша" ΠΈ "Π²Π½Π΅ памяти". Π”Π°Π½Π½Ρ‹Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ эффСкт, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° просто ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ отклонСния ΠΎΡ‚ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Π‘Ρ‚ΠΈΠ² ДТонсон.

12.3. Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

НаиболСС эффСктивный способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ нСбольшой Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ простоту. Π Π°Π½Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΡƒΠΆΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΎΡΡŒ мноТСство вСсомых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для сохранСния нСбольшого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ простоты ΠΊΠΎΠ΄Π°. Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ рассматриваСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° такая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ Π² ΠΊΠΎΠ΄Π΅, врСмя выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… критичСски Π²Π°ΠΆΠ½ΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ кэша.

Рассмотрим Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΊΠ°ΠΊ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ² памяти, упорядочСнных ΠΏΠΎ удалСнности ΠΎΡ‚ процСссора. Она Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя собствСнныС рСгистры процСссора; Π΅Π³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ инструкций; кэш ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня (L1); кэш Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня (L2); вСроятно, кэш Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ уровня (L3); опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ (которая срСди спСциалистов старой ΡˆΠΊΠΎΠ»Ρ‹ Unix Π΄ΠΎ сих ΠΏΠΎΡ€ изящно называСтся основой (core)); ΠΈ дисковыС Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… располагаСтся ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ. Π’Π°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ SMP, кластСры с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ тСхнология доступа ΠΊ Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΉ памяти (Nonuniform Memory Access β€” NUMA) Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ большС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ разброс.

Π›ΡŽΠ±Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ доступа ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ стСку ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ΡΡ. Π¦ΠΈΠΊΠ»Ρ‹ процСссора ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ бСсплатными, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ нСсколько Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ядСрных Π²Π·Ρ€Ρ‹Π²ΠΎΠ² ΠΈΠ»ΠΈ сТатиС Π²ΠΈΠ΄Π΅ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Однако Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ возрастания скорости процСссора, происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ скоростСй ΠΌΠ΅ΠΆΠ΄Ρƒ уровнями Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ хранСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ кэша увСличиваСтся.

ΠΠ°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ интСрСсный парадокс. По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов Ρ€Π΅Π·ΠΊΠΎ сниТаСтся, оТидаСмая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π΄Π°Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Π½ΠΈΡ†Π° стоимости ΠΌΠ΅ΠΆΠ΄Ρƒ смСТными уровнями кэша растСт, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, нСобходимая для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ кэша, Ρ‚Π°ΠΊΠΆΠ΅ возрастаСт.

"МалоС прСкрасно" β€” эта идСя, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, являСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ, особСнно Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ быстром кэшС. Данная рСкомСндация Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ; срСдняя инструкция Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.

Π­Ρ‚ΠΎ мСняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ совСты Π½Π° прямо ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Π΅. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ компилятора, подобная Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π°, которая освобоТдаСт ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ нСцСлСсообразной. Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся прСдвычислС-Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sin(x) ΠΎΡ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΡƒΠ³Π»Π° для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ вращСния Π² ядрС 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π° соврСмСнной машинС 365x4 Π±Π°ΠΉΡ‚. Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ процСссоры стали быстрСС, Ρ‡Π΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, это Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ скорости. Π’ настоящСС врСмя, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, быстрСС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, Ρ‡Π΅ΠΌ Ρ€Π°ΡΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ .ΠΏΠΎΡ‚Π΅Ρ€ΠΈ кэша, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Однако Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ кэша возрастут, всС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° свои мСста. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС мноТСство Π²ΠΈΠ΄ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ прямо ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ измСнСния ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ†Π΅Π½. ЕдинствСнный ΠΏΡƒΡ‚ΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ это Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅.

12.4. ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

Π”Ρ€ΡƒΠ³ΠΈΠΌ послСдствиСм использования быстрых процСссоров являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ограничиваСтся Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π½Π° I/О-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ (особСнно Π² случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Internet) Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π½Π° сСтСвыС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСтСвыС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ для достиТСния высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся максимальноС ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. КаТдая ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŒΠ½Π°Ρ транзакция, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ квитирования, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² соСдинСнии Π² ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅. ИзбСТаниС квитирования Π½Π΅ являСтся спСцифичСской ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Unix, ΠΎΠ΄Π½Π°ΠΊΠΎ здСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ практичСский ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·-Π·Π° квитирования Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ пониТаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ².

О Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ я ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. ВСрсия XI1 Π΄Π°Π»Π΅ΠΊΠΎ "ΠΎΡ‚ΠΎΡ€Π²Π°Π»Π°ΡΡŒ" or Π₯10 Π² ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² обращСния: Render-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π΅Ρ‰Π΅ дальшС. X (ΠΈ Π² настоящСС врСмя HTTP/1.1) являСтся ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. НапримСр, ΠΌΠΎΠΉ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ способСн Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 4 ΠΌΠ»Π½. прямых запросов (8 ΠΌΠ»Π½. холостых запросов) Π² сСкунду. Однако ΠΏΠΎΠ»Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ "запрос-ΠΎΡ‚Π²Π΅Ρ‚" Π² сотни ΠΈΠ»ΠΈ тысячи Ρ€Π°Π· Π΄ΠΎΡ€ΠΎΠΆΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ сСрвСру, являСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ΅ΠΌ.

Π”ΠΆΠΈΠΌ ГСттис.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ практичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с наимСньшСй Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ полосы пропускания Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с полосой пропускания, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… тСхничСских ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ², ΠΊΠ°ΠΊ сТатиС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Π»Π΅Ρ‚Ρƒ. Однако ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ высокой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, встроСнной Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ (часто практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ эффСкт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ проявляСтся Π² конструкции сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ являСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌ Ρ„Π΅Π½ΠΎΠΌΠ΅Π½ΠΎΠΌ. ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ программист ΠΈΠ½ΠΎΠ³Π΄Π° сталкиваСтся с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π°: ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ дорогостоящих вычислСний Π² расчСтС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько Ρ€Π°Π·, ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ вычислСний Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ нСобходимости (Π΄Π°ΠΆΠ΅ Ссли это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ частоС пСрСвычислСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²). Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… случаСв ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ склоняСтся Π² сторону Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ слСдуСт ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дорогостоящСС прСдвычислСниС Π² случаС, Ссли Π½Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ пропускной способности ΠΈΠ»ΠΈ Ссли измСнСния Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ слишком Π½ΠΈΠ·ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€Π΅Π΄Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ эффСктивными, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ использованиС процСссорных Ρ†ΠΈΠΊΠ»ΠΎΠ², Π½ΠΎ процСссорныС Ρ†ΠΈΠΊΠ»Ρ‹ Π΄Π΅ΡˆΠ΅Π²Ρ‹. Если создаСтся простая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· нСмногочислСнных гигантских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с интСнсивными вычислСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ упомянутоС Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π·Ρ€Ρ‹Π²ΠΎΠ², Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ β€” ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ нСбольшоС врСмя запуска ΠΈ быстрый ΠΎΡ‚ΠΊΠ»ΠΈΠΊ.