ΠΠ·Π΄Π°Π΄Π΅ ΡΠ΅ Π²Π΅ΡΡΠΈΡ 0.8.0 Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° ZXC (github.com), ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠΈ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎ Π°ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π±Π΅Π· Π·Π°Π³ΡΠ±ΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΠΈΠ³ΡΠΎΠ²ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΡΡΡΠΌΡΠ΅Ρ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ²Π΅Π½Π° Π΅ 40%+ ΠΏΠΎ-Π±ΡΡΠ·Π° ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ LZ4 Π½Π° ARM64, Ρ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΠΎΠ½Π½ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈ.
ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊ C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD 3.
Π‘ΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠ΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅Π³Π° Π΅ 5, βΠΏΡΠ΅ΡΠ΅ΡΠ°β Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°:
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΎ Π΅ LZ ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ (+1) Π½Π° Π½ΠΈΠ²ΠΎ ΡΠΎΡΠΌΠ°Ρ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΡΡΡΠ°Π½ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π°ΡΠ°ΠΊΠ° Ρ Π½ΡΠ»Π΅Π²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅.
- ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΈΡΠ΅ ΡΡΠΌΠΈ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° ΡΠ΅Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Marsaglia xorshift.
- ΠΠΎΠ²Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ LZ77 ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠΈ Π²ΠΈΡΠΎΠΊΠΈ Π½ΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ.
- Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π½ΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ 3β5, ΠΏΠΎΠΊΠ°Π·Π²Π°ΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Ρ 33β43 % ΠΊΠ°ΠΊΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ x86_64, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ARM64.
- ΠΠ°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΈ Π½ΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ (1 ΠΈ 2), Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Ρ 10-18% Π½Π° x86_64 ΠΈ ~8-10% Π½Π° ARM64.
- ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ. Python ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° ΡΠ΅Π³Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ C Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
- Π Π°Π·ΠΌΠ΅ΡΡΡ ZXC_BLOCK_SIZE Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎ 1 MB. Π€ΠΎΡΠΌΠ°ΡΡΡ Π½Π° ΡΠ°ΠΉΠ»Π° ZXC ΡΠ΅Π³Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄ΠΎ 8 MB.
- Π ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π°ΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅: ΠΎΠΏΡΠΈΡΡΠ° -m (ΠΈΠ»ΠΈ βmultiple) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»Π° Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ» file.txt ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π² file.txt.xc, ΡΠ°ΠΉΠ» file.txt.xc ΡΠ΅ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π² file.txt).
- Π ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π°ΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ: ΠΎΠΏΡΠΈΡΡΠ° -r (ΠΈΠ»ΠΈ βrecursive) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠΊΠ°Π·Π°Π½ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
- ΠΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ (Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ΅ΡΡΠ²Π°Π½Π΅) ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
- Π Π²Π΅ΡΡΠΈΡ 0.8.1 Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½Π° ΡΠ°ΠΌΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libzxc.so.1, Π·Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
