ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. — it-black.ru

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. — it-black.ru

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. — it-black.ru ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ старой Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. Но, сначала вспомним, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” это написанный Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ тСкст ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС программирования.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ оптимизация.

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ стоит Π½Π° Ρ‚Ρ€Π΅Ρ… Β«ΠΊΠΈΡ‚Π°Ρ…Β» β€” Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ врСмя. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚.

  1. Π•ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ СстСствСнно Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ возмоТности Π±Π΅Π· нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  2. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡƒΠ΄Π°Ρ‡Π½ΠΎ оптимизированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ быстродСйствиС ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 20-30% Π² сравнСниС с исходным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.
  3. ВрСмя. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСбольшой ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ сроки, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ 10 – 15 % Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° написаниС самого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π˜Π½Π°Ρ‡Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ€Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎ.
Начало ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Β«ΡƒΠ·ΠΊΠΈΠ΅ мСста» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСгулярно ΠΈΠ»ΠΈ часто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ – Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Участки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ

НС стоит Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒ Π² ΠΈΡ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ. Они ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΈ большС ΠΊ этому ΠΊΠΎΠ΄Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Но ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ Π΄ΠΎΠ±ΡŒΠ΅Ρ‚Π΅ΡΡŒ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° 10%, это Π½Π΅ лишСно смысла.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π΅ слишком отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ исправлСния Π±Π°Π³ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠŸΠΈΡˆΠΈΡ‚Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ коммСнтариях. Π’Π°ΠΊ Π²Ρ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ сСбС, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ, Π° Ρ‡Ρ‚ΠΎ – ΡƒΠΆΠ΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ совСты ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, ΠΈ ΠΏΡ€ΠΈ поискС Π±Π°Π³ΠΎΠ².

Π’ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ всСго, Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ подвисаСт. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ошибок ΠΈΠ»ΠΈ излишнС слоТных Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π’Ρ€Π΅Π΄ ΠΈ польза ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΊΠΎ всСму Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Π΄ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. БчитаСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ программист Π½Π° ассСмблСрС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² 3-5 Ρ€Π°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄, сгСнСрированный компилятором.

К оптимизациям, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π½Π΅Ρ‚ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΉ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ практичСски стандартными ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ многочислСнныС слоТныС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ машинного ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ сильно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ процСсс компиляции.

PVS-Studio

PVS-Studio β€” это инструмСнт для выявлСния ошибок ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… уязвимостСй Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° языках Π‘, C++, C# ΠΈ Java. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² срСдС Windows, Linux ΠΈ macOS.

Π’ статичСском Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ PVS-Studio Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π°Π±ΠΎΡ€ диагностик, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Анализатор PVS-Studio ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ инструмСнтам профилирования. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с прСдупрСТдСниями PVS-Studio, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ΄ часто становится ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

Facebook

Twitter

  • No Comments

Π“Ρ€ΡƒΠΏΠΏΠ° Π² VK

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ?

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΎΠ± этом, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ тСкст с ошибкой ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter, Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹!

Π‘Π²Π΅ΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Облако ΠΌΠ΅Ρ‚ΠΎΠΊ

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Zeal β€” Content rendering error

Π’ этом Π²ΠΈΠ΄Π΅ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Zeal. Β 

Установка ΠΈ ΠΎΠ±Π·ΠΎΡ€ ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

Π’ этом Π²ΠΈΠ΄Π΅ΠΎ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Zeal для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Β 

Π—Π°Ρ‡Π΅ΠΌ программисту ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹?

Π—Π° всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ слоТилось ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… (способы ΠΈΡ… хранСния) Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ практичСских Π·Π°Π΄Π°Ρ‡ β€” Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π΄ΠΆΠ΅Π½Ρ‚Π»ΡŒΠΌΠ΅Π½ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€,

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ API?

API β€” это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΎΡ‚ английского Application Programming Interface, интСрфСйс программирования прилоТСния. Говоря ΠΏΠΎ-простому, API дСйствуСт ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ посрСдник ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ интСрфСйса,

Instagram Vk Youtube Telegram Odnoklassniki

ПолСзно Π·Π½Π°Ρ‚ΡŒ

Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ

Авторы

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° | Techrocks

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

БСгодня эти мощности Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠ»Ρ‹Π±ΠΊΡƒ. Но Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ. Как извСстно, сколько Π½ΠΈ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска ΠΈ объСм ΠžΠ—Π£, всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»ΠΎ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ написанныС Β«Π½Π΅Ρ€ΡΡˆΠ»ΠΈΠ²ΠΎΒ» прилоТСния, ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ рСсурсоСмкиС, ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΡƒΡŽ Π±ΠΎΡ€ΡŒΠ±Ρƒ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ красивы ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹.

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ стоит Π½Π° Ρ‚Ρ€Π΅Ρ… Β«ΠΊΠΈΡ‚Π°Ρ…Β» β€” Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ врСмя. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚.

  1. Π•ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ СстСствСнно Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ возмоТности Π±Π΅Π· нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  2. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡƒΠ΄Π°Ρ‡Π½ΠΎ оптимизированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ быстродСйствиС ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 20-30% Π² сравнСниС с исходным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.
  3. ВрСмя. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСбольшой ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ сроки, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ 10 – 15 % Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° написаниС самого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π˜Π½Π°Ρ‡Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ€Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ совСт. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ копию исходного ΠΊΠΎΠ΄Π°. Π’ΠΎΠ³Π΄Π° Π² случаС ошибки ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ откатится Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ вСрсии.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ АссСмблСр

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ искрСннС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ критичСскиС сСкции (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡ… Β«ΡƒΠ·ΠΊΠΈΠΌΠΈΒ» мСстами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) ΠΊΠΎΠ΄Π° ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ассСмблСрС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ обСспСчиваСт самый быстрый доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ устройствам.

ΠœΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ сравнСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π° языкС высокого уровня ΠΈ примСнСния ассСмблСрных вставок ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС послС компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‡ΡƒΡ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ использовании ассСмблСра. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эти Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ΡΡ ΠΎΡ‚ 2% Π΄ΠΎ 7%. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ – Ρ€Π°Π·Π½ΠΈΡ†Π° составляСт 20%. Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Ρ€Π°Π΄ΠΈ получСния ΡΡ‚ΠΎΠ»ΡŒ ΠΌΠ°Π»ΠΎΠ³ΠΎ эффСкта Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΈ силы Π½Π° написаниС ассСмблСрной вСрсии? На наш взгляд Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ большС внимания Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написан Π½Π° ЯП высокого уровня, ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, ΠΊΠ°ΠΊ проводится оптимизация, ΠΈ разбСрСмся, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ, Ρ‡Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, ΠΈ ΠΊΠΎΠ³Π΄Π° Π±Π΅Π· ассСмблСра Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

Начало ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Β«ΡƒΠ·ΠΊΠΈΠ΅ мСста» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НСт смысла Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ кусок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ ΠΈ Π±Π΅Π· вас всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прСкрасно. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ вряд Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСгулярно ΠΈΠ»ΠΈ часто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ – Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Если ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ»Π° хотя Π±Ρ‹ Π½Π° 2% Π·Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, Π° число Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ 1000 Ρ€Π°Π·, Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ: 2% Γ— 1000 = 2000%, Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ΄Π°.

Участки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ

НС стоит Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒ Π² ΠΈΡ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ. Они ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΈ большС ΠΊ этому ΠΊΠΎΠ΄Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Но ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ Π΄ΠΎΠ±ΡŒΠ΅Ρ‚Π΅ΡΡŒ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° 10%, это Π½Π΅ лишСно смысла. Π—Π΄Π΅ΡΡŒ всС зависит ΠΎΡ‚ вашСго Π·Π΄Ρ€Π°Π²ΠΎΠ³ΠΎ смысла ΠΈ ΠΎΠΏΡ‹Ρ‚Π°.

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

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠ± ассСмблСрС

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚?

Если Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ смоТСтС ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈ этом тСстированиС Π½Π΅ выявляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ всС ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΌΡƒΠ΄Ρ€ΠΎΡΡ‚ΡŒ программистов: Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ – Π½Π΅ мСшай.

Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ лишнСС врСмя Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сдСлаСтС Π΄Π°ΠΆΠ΅ Ρ…ΡƒΠΆΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π΄Π° ΠΈ ΠΎΡ‚ Π±Π°Π³ΠΎΠ² Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ застрахован.

Π—Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ слСдуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΆΠ°Π»ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π»ΠΈΠ±ΠΎ Π½Π° этапС тСстирования находятся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ участки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «подвисаСт» ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ устройства. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях производится ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, Π° для ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² ΡΠ΅Ρ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΈΠ»ΠΈ, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅, Β«Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΠΈΒ» (patch).

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π΅ слишком отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ исправлСния Π±Π°Π³ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, с ΠΈΡ… устранСния ΠΈ начинаСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΠΈΡˆΠΈΡ‚Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ коммСнтариях. Π’Π°ΠΊ Π²Ρ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ сСбС, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ, Π° Ρ‡Ρ‚ΠΎ – ΡƒΠΆΠ΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ совСты ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, ΠΈ ΠΏΡ€ΠΈ поискС Π±Π°Π³ΠΎΠ². Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π½Π΅ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π½Π΅Ρ€ΡΡˆΠ»ΠΈΠ²Ρ‹ΠΌ Β«Π³ΠΎΠ²Π½ΠΎΠΊΠΎΠ΄Π΅Ρ€ΠΎΠΌΒ», ΠΈ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстро ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ этап поиска ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… мСст Ρ‚Π°ΠΊΠΆΠ΅ простой. Π Π°Π·Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ всСго, Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ подвисаСт. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ошибок ΠΈΠ»ΠΈ излишнС слоТных Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅.

Если всС Ρ€Π°Π²Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ»ΠΈ Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚Β», придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°, Π² Ρ‚ΠΎΠΌ числС, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ записи Π»ΠΎΠ³ΠΎΠ² всСх запросов SQL, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ случаС поиска Π²ΡΠ»Π΅ΠΏΡƒΡŽ Π²Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ смоТСтС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Рассмотрим самыС популярныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НСкоторыС ΠΈΠ· Π½ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ Ρƒ вас Π½Π΅Π΄ΠΎΡƒΠΌΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Настройка окруТСния

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

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

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° саму ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Β«ΠΆΠ΅Π»Π΅Π·Π°Β». ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ? А, ΠΌΠΎΠΆΠ΅Ρ‚, устарСли ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ «тормозят»?

ВсС это Π½Π΅ относится Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ «досадныС ΠΌΠ΅Π»ΠΎΡ‡ΠΈΒ» Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π° ΠΊΠΎΠ΄ – Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΈΡ‡Π΅ΠΌ. И Π½Π΅ стоит ΡΠ½ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»Ρ‹Π±Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.

ИзбавляСмся ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°

Для увСличСния скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сокращСния Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° автоматичСски Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. НапримСр, Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ, описывая Π·Π°Π΄Π°Ρ‡Ρƒ программисту, попросил ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ возмоТностях, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π». Или Π²Ρ‹ΡˆΠ΅Π» Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° старый ΠΊΠΎΠ΄ просто Π·Π°Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

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

ΠœΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΡ

ΠœΠ΅ΠΌΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ (ΠΎΡ‚ Π°Π½Π³Π». Memoization) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅. ЀактичСски это простоС сохранСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π²Ρ‹ смоТСтС ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ это ΠΎΡ‡Π΅Π½ΡŒ просто. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, провСряСтся условиС – исполнялась Π»ΠΈ ΠΎΠ½Π° Ρ€Π°Π½Π΅Π΅. По ΠΈΡ‚ΠΎΠ³Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

  • функция Π²Ρ‹Π·Π²Π°Π½Π° Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½Π° выполняСтся, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сохраняСтся;
  • ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сохранСнный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Иногда говорят ΠΎ Ρ‚Π°Π±ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, это синоним ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования.

ΠšΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

Вся нСобходимая информация Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° носитСлях с быстрым доступом. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ выдСлСнная Ρ‡Π°ΡΡ‚ΡŒ диска ΠΈΠ»ΠΈ опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ кэш ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, ΠΈ обращаСтся ΠΊ основному Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π² кэшС.

РаспараллСливаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π­Ρ‚ΠΎ способ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… систСм с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это относится ΠΊ многопроцСссорным систСмам.

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

Β«Π›Π΅Π½ΠΈΠ²Ρ‹Π΅Β» вычислСния

Π›Π΅Π½ΠΈΠ²Ρ‹Π΅ (Lazy evaluation) ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ вычислСния – стратСгия, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах счислСния. Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС расчСты ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Вакая стратСгия ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ сущСствСнно ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ объСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… вычислСний, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ попросту Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ зависимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²) Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½.

ΠœΠ΅Ρ‚ΠΎΠ΄ приблиТСния

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

ИспользованиС сторонних языков

Иногда написанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° описанных Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого эффСкта, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, написанныС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. Но Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½ΡƒΠΆΠ½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ остороТно. ВсС эти «лишниС» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ вас ΠΎΡ‚ Π±Π°Π³ΠΎΠ² ΠΈ Β«Π΄Ρ‹Ρ€Β» Π² бСзопасности, связанных, Π² Ρ‚ΠΎΠΌ числС, с Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡΡ‚ΠΎΠ»ΡŒ сущСствСнна? И Ссли ΠΏΡ€ΠΈΠ΄Π΅Ρ‚Π΅ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ здСсь это – Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ особо Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ тСстированиС.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ эффСкт Β«Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊΠ°Β», Ρ‡Ρ‚ΠΎ сильно сниТаСт Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ попросту Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ критичСски Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

БущСствуСт Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ общСизвСстных, Ρ‚Π°ΠΊ ΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Ρ…ΠΎΠ΄ΠΎΠΊ программистов. ΠœΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ оптимизация, ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас с самыми популярными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. А ΠΊΠ°ΠΊ Π²Ρ‹ ускоряСтС Ρ€Π°Π±ΠΎΡ‚Ρƒ своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ? Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ Π² коммСнтариях.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

По ΠΌΠ΅Ρ€Π΅ развития Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ растСт ΠΈ спрос Π½Π° Π±ΠΎΠ»Π΅Π΅ быстроС ΠΈ эффСктивноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

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

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ оптимизация ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½Π° ΠΏΠΎ Ρ†Π΅Π»ΠΎΠΌΡƒ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго ΠΊΠΎΠ΄Π°, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ простым Π² обслуТивании.

БущСствуСт нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ вашСго ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ языка, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ, ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π°Π΄Π΅Π΅Ρ‚Π΅ΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ. Однако Π² Ρ†Π΅Π»ΠΎΠΌ сущСствуСт нСсколько основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ своСго ΠΊΠΎΠ΄Π°: 9.0008

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ количСство конвСрсий ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ эффСктивным. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наимСньший Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅. НапримСр, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ 255, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… byte вмСсто Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… int.

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ максимально простым

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

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… вычислСний

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

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

ΠšΡΡˆΠΈΡ€ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСобходимости ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ особСнно Π²Π°ΠΆΠ΅Π½ Π² часто выполняСмом ΠΊΠΎΠ΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ†ΠΈΠΊΠ»Π΅.

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «избСгания Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°Β» Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π» Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ писал Π² Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹. ИзбСгая Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ своСго ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивным.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ самыС эффСктивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ наимСньшСго количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ рСсурсов для выполнСния поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ. НапримСр, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большой массив Π΄Π°Π½Π½Ρ‹Ρ…, использованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° быстрой сортировки Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивным, Ρ‡Π΅ΠΌ использованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировки. Быстрая сортировка β€” Π±ΠΎΠ»Π΅Π΅ эффСктивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сортировка Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΉΠΌΠ΅Ρ‚ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для быстрой сортировки трСбуСтся мСньшС рСсурсов, Ρ‡Π΅ΠΌ для ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировки, поэтому ΠΎΠ½Π° мСньшС Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ систСму.

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

ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ наш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Github ΠΈ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Π½Π° нашСм ΠΊΠ°Π½Π°Π»Π΅ Discord!
ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой API бСсплатно прямо сСйчас Π½Π° BLST!

Π›ΡƒΡ‡ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Python β€” Stackify

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Python

Автор: [emailΒ protected]

 | 21 июля 2021 г.

Π’ настоящСС врСмя Python являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языком программирования для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. По статистикС, 44,1% программистов Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ язык программирования Python для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ/Π²Π΅Π±-сайтов. Однако это Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Python ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ создания бСспорядочного ΠΈ нСэффСктивного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΈ вашим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π΅Π½Π΅Π³. ИмСнно здСсь Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ оптимизация ΠΊΠΎΠ΄Π° Python.0008

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

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Python β€” это способ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈ быстро с использованиСм мСньшСго количСства строк ΠΊΠΎΠ΄Π°, мСньшСго объСма памяти ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… задСйствованных рСсурсов, обСспСчивая ΠΏΡ€ΠΈ этом ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

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

  • Π£ΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния;
  • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ чистым ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ;
  • Π£ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ отслСТиваниС ошибок ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ;
  • Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π¨Π΅ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΡ… совСтов ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Python

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Python Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° вмСсто Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ программирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НиТС ΠΌΡ‹ пСрСчислили 6 совСтов ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Python , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ чистым ΠΈ эффСктивным.

1. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Peephole

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Peephole, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ выполняСтся ΠΊΠΎΠ΄ Python. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ΄ записываСтся Π² стандартный Ρ„Π°ΠΉΠ», Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«python -m compileall Β» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ *. pyc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π²ΠΎ врСмя компиляции для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСго ΠΊΠΎΠ΄Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Peephole ΠΊΠΎΠ΄ оптимизируСтся Π·Π° кулисами ΠΈ выполняСтся Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ вычислСния константных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов принадлСТности. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ количСства сСкунд Π² сутках ΠΊΠ°ΠΊ a = 60*60*24, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ вычислСниС ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ вмСсто повторСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ утвСрТдСния снова ΠΈ снова. снова ΠΈ Ρ‚Π΅ΠΌ самым сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Peephole являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Python ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вычисляСт константныС выраТСния 60*60*24, замСняя ΠΈΡ… Π½Π° 86400. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ всС врСмя ΠΏΠΈΡˆΠ΅Ρ‚Π΅ 60*60*24, это Π½Π΅ снизит ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Peephole

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ сСгмСнт инструкции Π±Π΅Π· сущСствСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

  • ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ измСняСмыС конструкции Π² нСизмСняСмыС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ:
    • <__code__.co_varnames>, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
    • <__code__.co_names>, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹.
    • <__code__.co_consts>, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Π½Π° всС константы.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнта, рассматривая инструкции ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с постоянной ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π°Π±ΠΎΡ€Π°.
  • ΠŸΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ ΠΈ список Π² константы.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Python Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, оптимизация Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ списков Π½Π΅ являСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

  • Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!Β» * 5 β€” константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΅ 4096. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ компилятор ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Β«Hello, world!Β» 5 Ρ€Π°Π· подряд
  • [1, 2] * 7 β€” это список (измСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), поэтому ΠΎΠ½ Π½Π΅ оцСниваСтся.
  • (10, 20, 30) * 3 β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρ‹ 9, которая мСньшС 256 (для ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ), поэтому ΠΎΠ½Π° хранится ΠΊΠ°ΠΊ (10, 20, 30, 10, 20, 30, 10, 20, 30).

2. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ строки для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Python ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов Unicode, поэтому Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «тСкстовыми» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ. Когда Π² строку Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ символы Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ вСс ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ символа. Python Ρ‚Π°ΠΊΠΆΠ΅ выдСляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для хранСния строк, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ мСста. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ строк.

ИдСя интСрнирования строк Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк Π² памяти ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… создания. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки, ΠΈ для обращСния ΠΊ Π½Π΅ΠΌΡƒ Π½Π΅ трСбуСтся новая ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π˜Π½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с раздСляСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Когда строка интСрнируСтся, ΠΎΠ½Π° рассматриваСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ экзСмпляр этого строкового ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° глобально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всСми ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ сСансС Python.

Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ языка программирования Python, CPython Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сСанса Python.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк позволяСт Python Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эффСктивно с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ памяти.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

Python ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с наибольшСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ строки ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

  • ИмСна Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²;
  • ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;
  • ИмСна Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²;
  • ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов;
  • ΠšΠ»ΡŽΡ‡ΠΈ словаря.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ интСрнирования строки:

  • Волько строка, загруТСнная Π²ΠΎ врСмя компиляции ΠΊΠ°ΠΊ константная строка, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½Π°, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, строка, созданная Π²ΠΎ врСмя выполнСния, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½Π°.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½Π°, Ссли ΠΎΠ½Π° являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ свСртки констант ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ Π±ΠΎΠ»Π΅Π΅ 20 символов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ вряд Π»ΠΈ ΠΎΠ½Π° являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.
  • Python Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для Π½Π΅Π΅ Ρ…ΡΡˆ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π±ΡƒΠΊΠ²/Ρ†ΠΈΡ„Ρ€/Ρ‡Π΅Ρ€Π½Ρ‹Ρ… символов ΠΈ начинаСтся Π»ΠΈΠ±ΠΎ с Π±ΡƒΠΊΠ²Ρ‹, Π»ΠΈΠ±ΠΎ с символа подчСркивания.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, всС строки, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎ сСти, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎ-интСрнирования. Однако просто ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ​​задачу Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ intern() , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… строк ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

3. ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΡ свой ΠΊΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ области ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² вашСм ΠΊΠΎΠ΄Π΅ для дальнСйшСй ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π•ΡΡ‚ΡŒ Π΄Π²Π° основных способа ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ .

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСкундомСра с этим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. записываСт врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ сСгмСнтом ΠΊΠΎΠ΄Π°, ΠΈ измСряСт ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ врСмя Π² миллисСкундах.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это вычисляСтся:

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ .

Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python, начиная с Python 2.5. Π•ΡΡ‚ΡŒ нСсколько способов ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΠ΄Ρƒ Python:

  • ΠžΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° запуска ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ;
  • ЗапуститС вСсь сцСнарий ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π² cProfile Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Python Β«-mΒ».

Зная ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ элСмСнты ΠΎΡ‚Ρ‡Π΅Ρ‚Π° cProfile, Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ ΡƒΠ·ΠΊΠΈΠ΅ мСста Π² своСм ΠΊΠΎΠ΄Π΅.

Π’ΠΎΡ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ:

  1. β€” количСство ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… Π·Π²ΠΎΠ½ΠΊΠΎΠ²;
  2. β€” совокупноС врСмя, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;
  3. β€” ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ;
  4. β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ совокупноС врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΡ… ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
  5. β€” частноС ΠΎΡ‚ дСлСния Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹;

β€” Ρ‚ΠΎΡ‡ΠΊΠ° дСйствия Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ для сортировки

Π­Ρ‚ΠΎ способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта, ΠΊΠ°ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Π˜Ρ… ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ сразу всС элСмСнты (ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹), Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ. ΠŸΡ€ΠΈ сортировкС элСмСнтов Π² спискС Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ . Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΈ строки ΠΏΠΎ индСксу, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Как это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ:

5. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎ встроСнных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…

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

Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ Β«CΒ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python прСдоставляСт Π²Π°ΠΌ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ исходная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π½ΠΎ с Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cPickle вмСсто Pickle, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. ΠŸΠ°ΠΊΠ΅Ρ‚ PyPy ΠΈ β€” это способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статичСский компилятор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс Π΅Ρ‰Π΅ быстрСС.

6. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΈ скрытыС ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты, приводящиС ΠΊ спагСтти-ΠΊΠΎΠ΄Ρƒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Python ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ обращаСтся ΠΊ внСшним ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈ этом ΠΎΡ‚ ΠΈΡ… использования Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ хотя Π±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… использованиС. Если ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Π²ΠΎΡ‚ нСсколько Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global для объявлСния внСшнСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ;
  • Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².

НиТняя строка

ΠšΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполняСт Π·Π°Π΄Π°Ρ‡ΠΈ быстро ΠΈ ΠΏΠ»Π°Π²Π½ΠΎ. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ кодирования, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Python.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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