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

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

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

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ‚Ρ€ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ стратСгии сокращСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ: (Π°) ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, способныС Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹, (b) Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ совмСщСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ (с) ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

12.4.1. ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ГрафичСскиС API-интСрфСйсы часто ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ фиксированныС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ для обновлСния физичСского экрана достаточно высоки. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи фактичСски ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ придСтся Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΎ достаточноС количСство ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΈΡ… Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ физичСского экрана. Π’Π΅Ρ€Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ физичСскими обновлСниями ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ различия Π² восприятии графичСских ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’Π°ΠΊΠΈΠΌ способом ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ Π₯-сСрвСр, Ρ‚Π°ΠΊ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses(3), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹Π΅ слуТСбныС Π΄Π΅ΠΌΠΎΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π±ΠΎΠ»Π΅Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ для Unix ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пакСтирования. БущСствуСт Π΄Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для написания постоянно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ CLI-сСрвСрам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСанса) β€” очСвидная ΠΈ нСочСвидная. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ являСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ обновлСниями ΠΎΠ±Ρ‰Π΅Π³ΠΎ рСсурса. МСнСС очСвидная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, которая ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π΄Π°ΠΆΠ΅ для Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… обновлСния, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ многочислСнных запросах ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π΅ΠΌΠΎΠ½Π°. Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π° являСтся DNS-слуТба named(8), которая Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ тысячи запросов Π² сСкунду, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ фактичСски Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Web-страницы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Одна ΠΈΠ· Ρ‚Π°ΠΊΡ‚ΠΈΠΊ, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΡ… named(8) быстрой слуТбой, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ дорогостоящиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° дисковых тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… DNS-Π·ΠΎΠ½Ρ‹, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ доступом ΠΊ ΠΊΡΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТится Π² памяти.

12.4.2.Β Π‘ΠΎΠ²ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Π’ Π³Π»Π°Π²Π΅ 5 ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π ΠžΠ Π— ΠΈ IMAP для опроса ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… сСрвСров. ΠŸΡ€ΠΈ этом Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ IMAP-запросы (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π ΠžΠ Π—-запросов) ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ запроса, сгСнСрированным ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Π‘Π΅Ρ€Π²Π΅Ρ€, отправляя ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² Π½Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΊΡƒ запроса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.

Π ΠžΠ Π—-запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром Π² строгом порядкС. ΠšΠ»ΠΈΠ΅Π½Ρ‚ отправляСт запрос, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ запрос ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π΅Π³ΠΎ получСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос. IMAP-запросы, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ, поэтому ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ. Если IMAP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ извСстно, Ρ‡Ρ‚ΠΎ трСбуСтся Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСсколько сообщСний, Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ IMAP-сСрвСру ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов Π½Π° доставку (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ со своСй ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ), Π½Π΅ оТидая ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ отправятся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ². ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ запросы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ всС Π΅Ρ‰Π΅ отправляСт Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ запросы.

Описанная стратСгия являСтся распространСнной Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² области сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ². Когда трСбуСтся ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² β€” ΠΊΡ€Π°ΠΉΠ½Π΅ нСэффСктивныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

12.4.3.Β ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

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

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

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

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ оказываСтся работоспособным, ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми нСдостатками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° SPOT. Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ экономии пространства, Ρ‚.Π΅. это ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ оптимизация скорости. Однако Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ для обСспСчСния когСрСнтности ΠΌΠ΅ΠΆΠ΄Ρƒ кэшСм ΠΈ мастСр-тСкстом ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстСн ΠΊΠ°ΠΊ "Ρ‚Π΅ΠΊΡƒΡ‡ΠΈΠΉ" ΠΈ Ρ‡Ρ€Π΅Π²Π°Ρ‚Ρ‹ΠΉ ошибками. ΠžΡ‡Π΅Π½ΡŒ частоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² кэша ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ просто Π²Π²ΠΈΠ΄Ρƒ односСкундного Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ.

Но ΠΊΠΎΠ³Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ всС-Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² простых случаях. Одним ΠΈΠ· Π½ΠΈΡ… являСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ сохраняСт Π½Π° дискС Ρ„Π°ΠΉΠ» Ρ€-ΠΊΠΎΠ΄Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ . рус, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python импортируСтся Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅. ΠŸΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°Ρ… ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ копия Ρ€-ΠΊΠΎΠ΄Π° загруТаСтся, Π² случаС Ссли источник с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π½Π΅ измСнялся (это позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅). Подобная ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Emacs Lisp (Ρ„Π°ΠΉΠ»Ρ‹ .el ΠΈ . elc). Данная ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° работоспособна, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ доступ для чтСния ΠΈ для записи кэша осущСствляСтся посрСдством ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

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

Если ситуация Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ‚ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° вопрос: ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ понадобилось ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅? РСшСниС Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ слоТнСС, Ρ‡Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… случаСв Π² ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии.

13 Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: просто, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ‰Π΅

ВсС слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ‰Π΅. β€”ΠΠ»ΡŒΠ±Π΅Ρ€Ρ‚ Π­ΠΉΠ½ΡˆΡ‚Π΅ΠΉΠ½

Π’ ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ 1 философия Unix Π±Ρ‹Π»Π° свСдСна ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ β€” K.I.S.S. (Keep It Simple, Stupid! Π‘ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΡ‰Π΅!). Π’ части "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅" Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚Π΅ΠΌ Π±Ρ‹Π»Π° Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ простоты конструкции ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Однако, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ "просто, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ"?

РассмотрСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ вопроса ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΎΡΡŒ Π΄ΠΎ настоящСй Π³Π»Π°Π²Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ простота β€” комплСксноС понятиС. Π’ качСствС тСорСтичСской основы ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сформулированы Ρ€Π°Π½Π΅Π΅ Π² части "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅", особСнно Π² Π³Π»Π°Π²Π°Ρ… 4 ΠΈ 11.