ΠΠ±ΡΠ°Π²Π΅Π½Π° Π΅ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° 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
