ΠΠ·Π»Π΅Π·Π΅ Π²Π΅ΡΡΠΈΡ 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
