ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π°

Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

ΠœΡ‹ Ρ‚ΡƒΡ‚ разбираСмся Π² Π²Π°ΠΆΠ½Ρ‹Ρ… понятиях большой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ оптимизация

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° β€” это ΠΊΠΎΠ³Π΄Π° программист Π±Π΅Ρ€Ρ‘Ρ‚ ΠΊΠΎΠ΄ ΠΈΠ· ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ пытаСтся Π΅Π³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ†Π΅Π»ΠΈ.

Π§Ρ‚ΠΎ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ отличаСтся ΠΏΠΎ исполнСнию, поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ, самоС Π²Π°ΠΆΠ½ΠΎΠ΅: ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ итСрациями чинят всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅.

Иногда ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π² процСссС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° пСрСписываСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС ΠΈΠ»ΠΈ добавляСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ язык программирования.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹

Бамая частая оптимизация ΠΊΠΎΠ΄Π° β€” ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹.

НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π²ΠΈΠ΄Π΅ΠΎΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сразу ΡƒΠ²ΠΈΠ΄Π΅Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ, Π° ΠΏΡ€ΠΈ этом Π³Π΄Π΅-Ρ‚ΠΎ рядом Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΡƒΡΡ‚Ρ€Ρ‹ΠΉ софт, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ люди ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΡƒΡ‚ Π½Π° Π½Π΅Π³ΠΎ, Π° компания потСряСт дСньги. Π§Ρ‚ΠΎΠ±Ρ‹ этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, программисту Π΄Π°ΡŽΡ‚ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ускорСния:

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚, Π½ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ: Ρ‡Π°Ρ‰Π΅ всСго ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ всСго.

Π­Ρ‚ΠΈΠΌ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠΌ часто ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ компания Apple: ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄Π΅Π» интСрфСйс практичСски сразу послС запуска, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ лишь Ρ‡Π΅Ρ€Π΅Π· 1–2 сСкунды. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто ставится ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ отрисовки ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ интСрфСйса, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° Ρ„ΠΎΠ½Π΅, ΠΈ Π½Π° это Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ врСмя. Π—Π°Ρ‚ΠΎ выглядит всё Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»Π°ΡΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ скорости ΠΎΡ‚Π²Π΅Ρ‚Π°

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

ΠŸΡ€ΠΈ этом Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ 20–30 сСкунд ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. Никто Π½Π΅ ΠΆΠ΄Ρ‘Ρ‚ ΠΎΡ‚ Π½ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° Π²ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСакция Π½Π° запросы β€” Π½ΡƒΠΆΠ½Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ отказоустойчивости

Если ΠΌΡ‹ пишСм ΠΊΠΎΠ΄ для Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ всСх ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ‚ΠΎ Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅:

ΠšΠΎΡ€ΠΎΡ‡Π΅: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ слоТно ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ.

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ… Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… запросах для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ получСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Если такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ°Π΄Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° отваливаСтся ΠΎΠ΄Π½Π° ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, β€” Π΅Ρ‘ Ρ‚ΠΎΡ‡Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΎΠ±ΡŠΡ‘ΠΌΠ° ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… β€” Π΅Ρ‰Ρ‘ Π΅ΡΡ‚ΡŒ Π±Ρ€Π΅Π»ΠΎΠΊΠΈ, сигнализации, ΡƒΠΌΠ½Ρ‹Π΅ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΈ, систСмы контроля доступа, часы, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π½ΡƒΡ‚Ρ€ΡŒ этих устройств ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Тёсткий диск слоТно, поэтому всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ хранятся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Π Π°Π·ΠΌΠ΅Ρ€ памяти Ρ‚Π°ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½.

Или другая ситуация: Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΎΠ΄Π½ΠΎΠΉ вСрсии ΡƒΠΌΠ½Ρ‹Ρ… часов, Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ эти ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСнСсти Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ часы, Π³Π΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π΅ ΠΈ памяти помСньшС.

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

Π•Ρ‰Ρ‘ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ возмоТности ΠΆΠ΅Π»Π΅Π·Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ мСсто для хранСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π΅Ρ‘ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². НапримСр, Π² старом Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π³Π΄Π΅ хранятся ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ². МСлодии Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ°Π»ΠΎ мСста, ΠΈ Ρ‡Π°ΡΡ‚ΡŒ остаётся свободной β€” Π² этом случаС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ маскируСтся ΠΏΠΎΠ΄ мСлодию ΠΈ отправляСтся Ρ‚ΡƒΠ΄Π°.

Π§Ρ‚ΠΎ дальшС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ своим старым ΠΊΠΎΠ΄ΠΎΠΌ: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ лСгаси, Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ всё ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π½ΠΎ ΡƒΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° сайта

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. optimizatsiya koda sayta. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-optimizatsiya koda sayta. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° optimizatsiya koda sayta. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайта

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. speedtest12. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-speedtest12. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° speedtest12. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ посСтитСлСй Π½Π° сайтС Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ связано со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурса. Π’Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° загрузятся ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈΠ»ΠΈ другая информация. ΠŸΡ€ΠΎΡ‰Π΅ ΡƒΠΉΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°ΠΌ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ приобрСсти нСсколько Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° сайтС, Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу приходится ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠΈΠ½ΡƒΡ‚Π΅. Когда-Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄Π΅ΠΌΡ‹ страницы появлялись Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ спустя нСсколько ΠΌΠΈΠ½ΡƒΡ‚. Π­Ρ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΈ. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ускорСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страниц рСсурса являСтся поисковая Π²Ρ‹Π΄Π°Ρ‡Π°. Π‘ΠΎΠ»Π΅Π΅ быстрый сайт Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокиС строчки Π² Google.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ вашСго ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΠΎΡ€Ρ‚Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСрвисах:

ВмСстС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайта Π²Ρ‹ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ совСты ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π•ΡΡ‚ΡŒ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ видят сайт поисковыС Ρ€ΠΎΠ±ΠΎΡ‚Ρ‹. Для этого трСбуСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС скрипты ΠΈ стили. Если Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ информация страниц появляСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎ отобраТаСтся, ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ поисковики Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ URL сайта.

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ HTML-ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. htmlsz. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-htmlsz. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° htmlsz. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ CSS

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. csssz. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-csssz. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° csssz. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

CSS (Cascading Style Sheets β€” каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй) ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π—Π°Π΄Π°Π΅Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ Ρ†Π²Π΅Ρ‚Π°. Π€Π°ΠΉΠ» CSS вСсит ΠΌΠ΅Π½Π΅Π΅ 100 ΠΊΠ±, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ стоит Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π£Ρ…ΡƒΠ΄ΡˆΠ°ΡŽΡ‚ SEO-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΡ‹ ΠΈ Ρ„Π»Π΅Ρˆ. Они ΡƒΠΊΡ€Π°ΡˆΠ°ΡŽΡ‚ рСсурс, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹.

ВСхнология Adobe Flash Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурс Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ анимация, голосовоС сопровоТдСниС. Однако минусов Ρƒ Π½Π΅Π΅ большС. Π‘Π°ΠΉΡ‚ Π΄ΠΎΠ»Π³ΠΎ грузится ΠΈΠ·-Π·Π° слоТностСй с кСшСм. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ заполняСт большоС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ПК. Для отобраТСния трСбуСтся установка Adobe Flash player. Google ΠΈ Yandex ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π»Π°Π²Π½ΡƒΡŽ страницу ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сайта. Для продвиТСния Π² поисковиках придСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сайт Π½Π° HTML. Π’Π°ΠΊΠΆΠ΅ Ρ„Π»Π΅Ρˆ-эффСкты Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π³Π°Π΄ΠΆΠ΅Ρ‚Π°Ρ… ΠΎΡ‚ Apple.

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² поисковиках ΠΌΠΎΠΆΠ½ΠΎ Π·Π° счСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ CSS Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ автоматичСски. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС процСсс Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° ΠΈΠ·-Π·Π° чСловСчСского Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· Π²ΠΈΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅.

Для Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ CSS трСбуСтся

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. js opti. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-js opti. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° js opti. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ JavaScript

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° сайтС

ВСс ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурса. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. css opti. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-css opti. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° css opti. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

БСрвисы для автоматичСской HTML ΠΈ CSS ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся Clean CSS.com. Π­Ρ‚ΠΎΡ‚ сСрвис позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс сТатия. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π’Π°ΠΊΠΆΠ΅ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΡ€Π΅Π΄Π½ΡŽΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ сТатия. Π­Ρ‚ΠΎ сущСствСнный плюс, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ высокой ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ скоростях ΠΊΠΎΠ΄ становится Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для дальнСйшСй ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ сТатия Π² CleanCSS.com Π±ΡƒΠ΄Π΅Ρ‚ тСкстовый Ρ„Π°ΠΉΠ». Он ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ измСнСния, Π² Ρ‚ΠΎΠΌ числС Π² синтаксичСских конструкциях ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ сСрвисы CSS Optimizer, CY-PR.com, CSS Compressor ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Autoptimize. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ со сТатиСм ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты ΠΊΠΎΠ΄Π° ΠΈ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сайта.

ПослС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурса Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ, Ссли Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° сайта длится Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5 сСкунд. Π° тСкстовый ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° выглядят ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

АвтоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ сСрвисы:

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ рСсурса Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок стоит провСсти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° validator.w3c.org.

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅ΡˆΡŒ свои Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈ услуги Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅? Π£ нас для тСбя Π΅Ρ‰Π΅ большС инструмСнтов, Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΎΠ² ΠΈ вдохновСния Π½Π° ЯндСкс.Π”Π·Π΅Π½.ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π°: процСссор

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

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. 6d4c8003605de99e54c4afceff08392b. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ-6d4c8003605de99e54c4afceff08392b. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 6d4c8003605de99e54c4afceff08392b. Какая Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π°.

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

На написаниС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ мСня Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»Π° пятая Π³Π»Π°Π²Π° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Computer Systems: A Programmer’s Perspective. ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ протСстированы Π½Π° машинС с процСссором Pentium 2117U, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° вашСй машинС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ другая. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠ· этой сСрии, Β«ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π°: ΠΏΠ°ΠΌΡΡ‚ΡŒΒ», ΠΌΡ‹ рассматриваСм Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ использования кэша.

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Нам, ΠΊΠ°ΠΊ программистам, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ характСристики ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ позволят компилятору ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠœΡ‹ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Рассмотрим Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Одним ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π΄Π²Π° указатСля ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΈ поэтому Π½Π΅ выполняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Ѐункция twiddle2 выглядит Π±ΠΎΠ»Π΅Π΅ эффСктивной, ΠΎΠ½Π° выполняСт всСго Ρ‚Ρ€ΠΈ запроса ΠΊ памяти (ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ *xp, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ *yp, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ *xp), Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ twiddle1 выполняСт ΡˆΠ΅ΡΡ‚ΡŒ запросов (Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ чтСния ΠΈ Π΄Π²Π΅ записи). МоТно ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Однако ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ xp ΠΈ yp ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ячСйку памяти. Π’ΠΎΠ³Π΄Π° twiddle1 ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ *xp Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π°, Π° twiddle2 β€” Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ случаС. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ компилятор Π½Π΅ посмССт Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ΠΎΠΎΠ±Ρ‰Π΅, Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π»Π΅ΠΊΡƒΡ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΡ… ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠ΅Ρ€Π²Π°Ρ функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ f Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π°, ΠΊΠΎΠ³Π΄Π° вторая β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ компилятор догадаСтся ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ. Но функция f ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ глобальноС состояниС, ΠΊΠ°ΠΊ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’ этом Ρ‡Π»ΡƒΡ‡Π°Π΅ func1 ΠΈ func2 Π²Π΅Ρ€Π½ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρƒ тяТСло ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Когда ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΎΠ½ рассчитываСт Π½Π° Ρ…ΡƒΠ΄ΡˆΠ΅Π΅ ΠΈ Π½Π΅ выполняСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ.

ДСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ вычислСния Π½Π°Π΄ большими массивами Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·ΡƒΠΌΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² срСднСм количСствС Ρ‚Π°ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ процСссор Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта массива. Π’Π²Π΅Π΄Ρ‘ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ CPE (cycles per element). Если ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ CPE 2.5, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½Π° Π² срСднСм Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ 2.5 Ρ‚Π°ΠΊΡ‚Π° процСссора Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта.

ΠœΡ‹ прСдставим ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ продСмонстрируСм ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° vec являСтся Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ элСмСнтов Ρ‚ΠΈΠΏΠ° float. Ѐункция combine0 вычисляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ пСрСмноТСния всСх элСмСнтов Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π Π°Π·ΠΌΠ΅Ρ€ массива сдСлаСм 5000 ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ случайными числами.

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

ИзбавляСмся ΠΎΡ‚ нСэффСктивностСй Ρ†ΠΈΠΊΠ»Π°

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

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

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

ИзбавляСмся ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ памяти

МногиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часто ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ памяти для чтСния ΠΈΠ»ΠΈ записи. Π­Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСгистрами процСссора, Π° Π½Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Для Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ввСсти Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ запись, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя произвСсти запись ΠΈΠ· этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Π΅ΠΌ сколько Ρ€Π°Π· ΠΌΡ‹ обращаСмся ΠΊ памяти Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠœΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ элСмСнт ΠΈΠ· массива, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ dest, складываСм эти значСния ΠΈ записываСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² dest. ВсСго Ρ‚Ρ€ΠΈ обращСния ΠΊ памяти. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² dest послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ элСмСнта. ΠœΡ‹ Π²Π²Π΅Π΄Ρ‘ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-аккумулятор, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² самом ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘ΠΌ запись Π² dest. Π‘Π°ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-аккумулятор компилятор размСстит Π² рСгистрС, поэтому ΠΌΡ‹ избавимся ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ памяти.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ выполняСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ с CPE 11.05 Π΄ΠΎ CPE 5.02. Если Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ компилятор сам догадаСтся ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ эту ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли dest ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅. Π’ этом случаС вСрсии с аккумулятором ΠΈ Π±Π΅Π· вычислят Ρ€Π°Π·Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ Ρ‡Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, поэтому готовится ΠΊ Π½Π°ΠΈΡ…ΡƒΠ΄ΡˆΠ΅ΠΌΡƒ ΠΈ Π½Π΅ выполняСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности компилятора.

Раскрутка Ρ†ΠΈΠΊΠ»Π°

ΠœΡ‹ достигли CPE 5.02. Π­Ρ‚ΠΎ Π½Π΅ простоС число, ΠΌΠΎΠΉ процСссор Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ 5 Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ умноТСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ достигли ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Мой процСссор Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ слоТСния чисСл Ρ‚ΠΈΠΏΠ° int. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ссли вмСсто пСрСмноТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° float, я Π±ΡƒΠ΄Ρƒ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ значСния Ρ‚ΠΈΠΏΠ° int, добьюсь Π»ΠΈ я ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ CPE 1.0? Π― Π²Π½ΠΎΡˆΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π—Π°ΠΏΡƒΡΠΊΠ°ΡŽ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ всСго CPE 1.58. ΠžΡ‚ΠΊΡƒΠ΄Π° такая Π½Π΅ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ?

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° добавляСт ΠΊ аккумулятору Π΄Π²Π° элСмСнта Π·Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послСдний элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² Ρ†ΠΈΠΊΠ»Π΅, поэтому Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ аккумулятору ΠΏΠΎΠ·ΠΆΠ΅. CPE ΠΏΠ°Π΄Π°Π΅Ρ‚ с 1.58 Π΄ΠΎ 1.15. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта Π·Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ CPE 1.03, Ρ‡Ρ‚ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ процСссора

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ процСссоры ΠΎΡ‡Π΅Π½ΡŒ слоТны. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство процСссора называСтся ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, ΠΈ это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΡ€, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ контроля. Когда процСссор Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ инструкции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ½ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, понятныС Π΅ΠΌΡƒ, ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… ΠΊΠ°ΠΊ Π΅ΠΌΡƒ вздумаСтся. Если ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ΄ ассСмблСра, Ρ‚ΠΎ каТСтся, Ρ‡Ρ‚ΠΎ процСссор выполняСт инструкции ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½Π° Π·Π° ΠΎΠ΄Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ прСдставлСны Π² ΠΊΠΎΠ΄Π΅. На самом Π΄Π΅Π»Π΅ процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ инструкции ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ порядкС, Ссли ΡƒΠ²Π΅Ρ€Π΅Π½ Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСссором инструкций ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ называСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ инструкций.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π·Π°Π΄Π°Ρ‡, ΠΌΡ‹ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ряд Π·Π°Π΄Π°Ρ‡: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· памяти, запись Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, слоТСниС Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ Ρ‚. Π΄. Мой процСссор ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ слоТСниС Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π²Π° слоТСния.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ процСссору Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· памяти ΠΈ это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 100 Ρ‚Π°ΠΊΡ‚ΠΎΠ². Но процСссору Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ. Π’Π΅Π΄ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти занимаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π² это врСмя ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вычислСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ процСссор Π½Π°ΠΏΠ΅Ρ€Ρ‘Π΄ считываСт нСсколько ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… инструкций ΠΈ пытаСтся Π½Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠΌΠΈ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, Π΄Π°ΠΆΠ΅ Ссли придётся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ инструкции Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ порядкС.

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ инструкций Π½Π°ΠΏΠ΅Ρ€Ρ‘Π΄ называСтся ΠΏΡ€Π΅Π΄Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ. Если Π²ΠΎ врСмя ΠΏΡ€Π΅Π΄Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ процСссор встрСчаСт Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, конструкция if-else), ΠΎΠ½ пытаСтся ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ, какая Π²Π΅Ρ‚Π²ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ взята ΠΈ считываСт инструкции ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. Если ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΠ½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° взята Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚Π²ΡŒ, ΠΎΠ½ сбрасываСт ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ вычислСния, восстанавливаСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС ΠΈ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ. Вакая ошибка стоит процСссору Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… потСрянных Ρ‚Π°ΠΊΡ‚ΠΎΠ². Для ΠΌΠ½ΠΎΠ³ΠΈΡ… процСссоров это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 20 Ρ‚Π°ΠΊΡ‚ΠΎΠ².

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€

Мой процСссор ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ умноТСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ½ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚ΠΎΠ². И казалось Π±Ρ‹, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ N ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΌ придётся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 5*N Ρ‚Π°ΠΊΡ‚ΠΎΠ². Но это Π½Π΅ Ρ‚Π°ΠΊ, благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ устройству ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€.

Π’ амСриканских Ρ„ΠΈΠ»ΡŒΠΌΠ°Ρ… Π²Ρ‹ навСрняка Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π² столовой ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ с подносом Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ²Π°Ρ€ΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ковшом Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π΅ΠΌΡƒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ своё. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ ΡΡ‚ΠΎΠ»ΠΎΠ²ΡƒΡŽ с ΠΏΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Π°Ρ€Π°ΠΌΠΈ, ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒΡΡ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚. Они ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊ: сначала ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ всСх ΠΏΠΎΠ²Π°Ρ€ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ ΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΎΡ‚ Π½ΠΈΡ… ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΠ» Π±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ подносом. Но это нСэффСктивно. Π›ΡƒΡ‡ΡˆΠ΅ Ссли всС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ выстроятся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚ эта ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΠ²Π°Ρ€Ρƒ. Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚ ΠΎΡ‚ ΠΏΠΎΠ²Π°Ρ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ подносом. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ обслуТиваниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° всё Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚ΠΎΠ², Π½ΠΎ обслуТиваниС N ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² (Ссли N Π²Π΅Π»ΠΈΠΊΠΎ) Π·Π°ΠΉΠΌΡ‘Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ N Ρ‚Π°ΠΊΡ‚ΠΎΠ².

По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° устроСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π² процСссорС. Они Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° нСсколько этапов, ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… этапах ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ инструкции. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ инструкции ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько Ρ‚Π°ΠΊΡ‚ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚. Π’Π°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½Ρ‹ΠΌΠΈ. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ дСлСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π”Π΅Π»Π΅Π½ΠΈΠ΅ считаСтся слоТной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 3-30 Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°.

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ нСсколько аккумуляторов

Но Ссли ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ позволяСт Π½Π°ΠΌ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ CPE 5.02, Π° Π½Π΅ CPE 1.02? Всё Π΄Π΅Π»ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π²Π΅Ρ‰ΠΈ ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. ВСрнёмся ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ со столовой. Допустим, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ²Π°Ρ€ Π² столовой Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ»ΠΈ рис ΠΈΠ»ΠΈ Π³Ρ€Π΅Ρ‡ΠΊΡƒ, ΠΈ ΠΏΠΎ странному ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, пройдя всСх ΠΏΠΎΠ²Π°Ρ€ΠΎΠ², Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ²Π°Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ обслуТиваниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΠΎΠΊΠ° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ всСх ΠΏΠΎΠ²Π°Ρ€ΠΎΠ². Нам приходится ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ опрСдСлённая Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ процСссора. ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΅ΡΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Ссли для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π½ΠΈΠΌΠΈ.

Π’ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ‚Π°ΠΊΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… создаёт пСрСмСнная-аккумулятор. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ инструкции Ρ†ΠΈΠΊΠ»Π° Π½Π° нСсколько ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π²ΠΏΠ΅Ρ€Ρ‘Π΄. Но Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΡ‹ вычисляСм Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ аккумулятора, учитывая Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, вычислСнноС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ вСсь ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. Π­Ρ‚ΠΎ ΠΈ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π½Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этой зависимости. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. А ΠΌΠΎΠΆΠ΅ΠΌ сначала ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ всС числа с Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌ индСксом, ΠΏΠΎΡ‚ΠΎΠΌ всС числа с Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌ, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ нСзависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ смогут Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

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

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ Π΄Π²Π° нСзависимых аккумулятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. CPE ΠΏΠ°Π΄Π°Π΅Ρ‚ Π΄ΠΎ с 5.02 Π΄ΠΎ 2.5. Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм раскрутку с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ аккумуляторами:

CPE ΠΏΠ°Π΄Π°Π΅Ρ‚ Π΄ΠΎ 1.28. ΠŸΡ€ΠΈ восьми аккумуляторах я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ CPE 1.04, Ρ‡Ρ‚ΠΎ практичСски Ρ€Π°Π²Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ процСссора. ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π² Ρ‚Π°ΠΊΠΎΠΌ стилС Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ нСсколько элСмСнтов.

Мой процСссор ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Core i7 Haswell ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠ°, Π½Π° Π½Ρ‘ΠΌ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ CPE 0.5, Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС аккумуляторов. Π’ΠΎΠΎΠ±Ρ‰Π΅, Ссли опСрация Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ C Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ N Π±Π»ΠΎΠΊΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство аккумуляторов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ C*N.

ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, компиляторы ΠΎΡ‡Π΅Π½ΡŒ консСрвативны, боятся Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ вносят измСнСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ случаС. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π·Π½Π°ΡŽΡ‚ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ раскрутки Ρ†ΠΈΠΊΠ»Π° с нСсколькими аккумуляторами. GCC примСняСт эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½ с Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ эту ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ для Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ примСнят Π΅Ρ‘ для чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Всё Π΄Π΅Π»ΠΎ Π² ассоциативности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, влияСт Π»ΠΈ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ складываСм ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ числа, Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ числами, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ВСкторизация

ΠœΡ‹ Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. CPE 1.04, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ достигли β€” Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π». Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ процСссоры ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ SSE ΠΈΠ»ΠΈ AVX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ процСссорС Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ рСгистры, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ %ymm0%ymm15, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 16 ΠΈΠ»ΠΈ 32 Π±Π°ΠΉΡ‚Π°. Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ AVX рСгистры ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 32 Π±Π°ΠΉΡ‚Π° ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… числа, ΠΈΠ»ΠΈ восСмь 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… числа, Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Ρ†Π΅Π»Ρ‹Ρ… ΠΈΠ»ΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. МоТно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· памяти Π² ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ рСгистр сразу 32 Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ 32 Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСгистр ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ сразу Π½Π°Π΄ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΈΠ»ΠΈ восьмью числами ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

Π­Ρ‚ΠΎ ΠΆΠ΅Π»Π΅Π·ΠΎ находится Π² процСссорС Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅, ΠΏΠΎΠΊΠ° Π²Ρ‹ явно Π½Π΅ задСйствуСтС Π΅Π³ΠΎ. GCC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка C, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ассСмблСрС, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСстанСт Π±Ρ‹Ρ‚ΡŒ пСрСносимой. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти возмоТности процСссора, ΠΌΠΎΠΆΠ½ΠΎ дальшС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² 4 ΠΈΠ»ΠΈ 8 Ρ€Π°Π·, Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° рСгистров. Π’ нашСм случаС, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ½ΠΈΠ·ΠΈΡ‚ΡŒ CPE Π΄ΠΎ 0.25 ΠΈΠ»ΠΈ 0.12.

Π˜Ρ‚ΠΎΠ³ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΈΠΌΠ΅Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ CPE 11.05. ΠŸΠΎΡ‚ΠΎΠΌ ΠΌΡ‹ избавились ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ запросов ΠΊ памяти ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎ CPE 5.02. ΠŸΠΎΡ‚ΠΎΠΌ использовали раскрутку Ρ†ΠΈΠΊΠ»Π° с нСсколькими аккумуляторами. Π’Π°ΠΊ смогли ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ зависимости Π΄Π°Π½Π½Ρ‹Ρ…, смогли ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ CPE 1.04. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² 11 Ρ€Π°Π·. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² 4488 Ρ€Π°Π·Π° быстрСС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ вСрсиСй.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ примСняСм всС эти Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ сравниваСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ вСрсиСй, которая Π±Ρ‹Π»Π° скомпилирована лишь с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. И, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ всС эти Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ компилятор ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ ΠΈΡ… Π·Π° нас, Ссли ΠΌΡ‹ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ΠΌ Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΡ‚ΠΏΠΈΠΌΠΈΠ·Ρ†ΠΈΠΈ. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ скомпилируСм ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с высоким, Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ посмотрим Π½Π° Ρ‡Ρ‚ΠΎ способСн компилятор. Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ CPE 5.02. Π­Ρ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ CPE 1.04, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ трансформируя ΠΊΠΎΠ΄. Π—Π½Π°Π½ΠΈΠ΅ всСх этих ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΌ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ пятикратного увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ дальшС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² 4-8 Ρ€Π°Π·, компилятор Π·Π° вас этого Π½Π΅ сдСлаСт.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ограничСния

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ·ΠΊΠΈΠΌ мСстом ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ эти Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚. Мой процСссор ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти Π² процСссор. Если для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· памяти Π΄Π²Π° числа, я Π½Π΅ смогу ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ CPE 2.0, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… чисСл Π·Π°ΠΉΠΌΡ‘Ρ‚ Π΄Π²Π° Ρ‚Π°ΠΊΡ‚Π°. Core i7 Haswell ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ слоТСния Ρ†Π΅Π»Ρ‹Ρ… чисСл. Но Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты цСлочислСнного Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, Π²Ρ‹ Π½Π΅ смоТСтС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ CPE 0.25. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ этот процСссор ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· памяти β€” это устанавливаСт ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π½Π° CPE 0.5.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ аккумулятора хранится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ рСгистрС. x86-64 процСссор ΠΈΠΌΠ΅Π΅Ρ‚ 16 рСгистров для Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈ 16 YMM рСгистров для чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Если ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ аккумуляторов, для Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ рСгистров. ΠŸΡ€ΠΈΠ΄Ρ‘Ρ‚ΡΡ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… Π² памяти, Ρ‡Ρ‚ΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Если ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство аккумуляторов Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с 8 Π΄ΠΎ 20, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Π΄Π°Π΅Ρ‚ с CPE 1.04 Π΄ΠΎ CPE 1.35.

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

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: рСассоциация

БущСствуСт Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, называСмая рСассоциациСй. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ расставляСм скобки ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΈ это позволяСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Допустим Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта Π·Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ CPE 5.02. По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ языка C, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ скобок, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния зависят ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ acc. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ всС умноТСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ. Расставим скобки ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… x, y ΠΈ z Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ зависят ΠΎΡ‚ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠΎΠΊΠ° выполняСтся тСкущая итСрация, процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π΄Π²Π° послСдних умноТСния Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… итСрациях. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ CPE 1.69.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: условная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, процСссор выполняСт ΠΏΡ€Π΅Π΄Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ считываСт инструкции Π½Π°ΠΏΠ΅Ρ€Π΅Π΄. Если Π΅ΠΌΡƒ встрСчаСтся Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ассСмблСра je, jg, jl ΠΈ Ρ‚. Π΄. ), ΠΎΠ½ пытаСтся ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ вычислСниС. Если ΠΎΠ½ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ тСряСт нСсколько Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ называСтся условная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния.

БущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° ассСмблСра cmov. Выполняя эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, процСссор провСряСт ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ условиС. Если это условиС Π²Π΅Ρ€Π½ΠΎ, ΠΎΠ½ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСгистра Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ называСтся условная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ создаётся вСтвлСния ΠΈ процСссору Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€ΠΈΡΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ².

ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, сдСлав ΠΏΠΎΡ‚ΠΎΠΊ выполнСния Π±ΠΎΠ»Π΅Π΅ прямым. Для этого Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ компилятор транслируСт конструкции if-else, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ассСмблСра je, jg, jl ΠΈ Ρ‚. Π΄., Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cmov. Рассмотрим Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ if-else:

Если Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ управлСния, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ вычислСно ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСссор ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ вСтвлСния ΠΈ потСряСт Ρ‚Π°ΠΊΡ‚Ρ‹. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ вСтвлСния, Ссли ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ этот ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Когда условная инструкция ΠΎΡ‡Π΅Π½ΡŒ простая, Π² Π½Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ присваиваСтся ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, компилятор транслируСт эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½Π° язык ассСмблСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cmov. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, послСдняя строка Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ транслирована, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ создавая вСтвлСния. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρƒ придётся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΎΠ±Π° выраТСния, Ρ‡Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Ρ‚Π°ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΎΠ½ Π½Π΅ выполняСт прСдсказания вСтвлСния, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ экономит Ρ‚Π°ΠΊΡ‚Ρ‹. Если выраТСния довольно просты, Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹ΠΌ.

Иногда компилятор Π½Π΅ выполняСт эту ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ считаСт, Ρ‡Ρ‚ΠΎ это ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Ссли ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΊΠΎΠ΄ Π² Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС, ΠΊΠ°ΠΊ прСдставлСно Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ОбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Они ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ обходят ΠΏΠ°Ρ€Ρ‹ чисСл ΠΈΠ· Π΄Π²ΡƒΡ… массивов, устанавливая Π² массив a наимСньшСС ΠΈΠ· Π½ΠΈΡ…, Π° Π² массив b наибольшСС. Волько вторая функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ…ΠΈΡ‚Ρ€ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ: ΠΎΠ½Π° вычисляСт минимальноС число, вычисляСт максимальноС число ΠΈ записываСт ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· чисСл Π² своё мСсто. Условия Π² вычислСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… min ΠΈ max Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ простыС, Ρ‡Ρ‚ΠΎ компилятор ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для Π½ΠΈΡ… ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Π½ΠΈΡ†Π° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ наибольшая, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ с Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: minmax1 β€” CPE 15.6, minmax2 β€” CPE 1.18 (Π² 13.2 Ρ€Π°Π· быстрСС).

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ процСссор скрываСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰ΡŒ. Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ доступ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ стилС. Π Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ трансформации ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ части ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ «чёрная магия» написания быстрого ΠΊΠΎΠ΄Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ с экспСримСнтом: ΠΏΡ€ΠΎΠ±ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Π΄Π΅Π»Π°ΡŽΡ‚ измСрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ ассСмблСра для обнаруТСния ΡƒΠ·ΠΊΠΈΡ… мСст.

Π’Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ свои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Код Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΡƒΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *