Π‘Π»Π΅Π΄ ΡΠ΅Π΄Π΅ΠΌ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π±Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° Π²Π΅ΡΡΠΈΡ 0.2.0 Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° OpenZL, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π΅Π·Π·Π°Π³ΡΠ±Π½ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° SDDL.
ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠ±ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡ ΠΈΠΌΠ° Π΄Π²Π° Π΅ΡΠ°ΠΏΠ°:
- ΠΠ½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±ΡΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±ΡΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅.
OpenZL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π΄Π²Π°ΡΠ° Π΅ΡΠ°ΠΏΠ°.
ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ
SDDL2
SDDL Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Π½ΡΠ»Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠΠΊΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° Π΄Π΅ΠΌΠΎ Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠ΅Π½Π° ΡΡΠ΅Π΄Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎ SDDL2 Π΅ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ: ΠΏΠ°ΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π°Π²Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π° ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ΠΎΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π΄ΡΡΠ²ΠΎ (AST) Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°, Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°.
ΠΠ»ΡΡΠΎΠ²ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π΅ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·. ΠΠΎΠ³Π°ΡΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΠΏΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΡΠΌ Π²ΡΡΠΊΠΎ ΠΏΠΎΠ»Π΅, Π±Π΅Π· Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π°ΡΠΈΡΠ΅ Π±Π°ΠΉΡΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π±Π΅Π· ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΠ/Ρ.
Π‘Π°ΠΌΠΈΡΡ Π΅Π·ΠΈΠΊ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. Π‘Π΅Π³Π° ΡΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° when Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° ΡΡΠ»ΠΎΠ²Π½ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠΈΡΠ΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΈ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ.
ΠΡΠ½ΠΎΡΠ½ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π΅ΡΠ°ΠΏΡΡ Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· ΡΠ΅Π³Π° ΠΎΡΠΊΡΠΈΠ²Π° Π½Π΅ΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π² ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π°ΡΠ½ΠΎΡΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ β Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ β Π° Π½Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° VS Code Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ .sddl.
ΠΠΎΠ²ΠΈΡΡ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΡ ΠΊΠΎΠ΄Π΅ΠΊ LZ
Π OpenZL ΡΠ΅Π³Π° Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠΎΠ±ΡΡΠ²Π΅Π½ LZ ΠΊΠΎΠ΄Π΅ΠΊ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° ZL_GRAPH_LZ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΎΡΠΈΠ» Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π² Π·Π°Π»Π° zli. Π Π°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΊΠΎΠ΄Π΅ΠΊΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°: Π²ΡΡΠ²ΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Π½Π° zstd Π½ΠΈΠ²ΠΎ 1, Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ 64 ΠΠ.
OpenZL ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΅ΡΠ°ΠΏ ΠΎΡ LZ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Ρ ΡΠ΅Π» ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ°. ΠΠ΅Π³ΠΎΠ²Π°ΡΠ° Π³ΡΠ°ΡΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π½Π° Π΅Π½ΡΡΠΎΠΏΠΈΠΉΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΡΠ°ΠΏΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ Π² Π΅Π΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° OpenZL Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Ρ 10% ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ Ρ 70% ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡ Zstandard Π½ΠΈΠ²ΠΎ 1 Π½Π° ΠΊΠΎΡΠΏΡΡΠ° Silesia Π² Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅:
| ΠΠΎΠΌΠΏΡΠ΅ΡΠΎΡ | ΠΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ | Π‘ΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ | Π‘ΠΊΠΎΡΠΎΡΡ Π½Π° Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ |
|---|---|---|---|
| OpenZL LZ Π½ΠΈΠ²ΠΎ 1 | 2.74 | 466 MB/s | 2288 MB/s |
| Zstd Π½ΠΈΠ²ΠΎ 1 Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ° 64K | 2.74 | 419 MB/s | 1254 MB/s |
| Zstd Π½ΠΈΠ²ΠΎ 1 | 2.89 | 424 MB/s | 1345 MB/s |
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ
zli ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ (Ρ ΠΎΠ±Π΅ΠΌ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°). ΠΡΠ΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ°, ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ (ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ β ΠΎΠΊΠΎΠ»ΠΎ 16MB), ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈ ΠΎΠ±Π΅ΠΌΡΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΠΎΡΠ²Π°ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. Π SDDL2 Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΡ Π΅ΠΌΠ°. Π ΠΏΡΠΎΡΠ΅ΡΠ° Π±ΡΡ Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½Π°ΡΠΎΡΠΈ β Π·Π° CSV, Parquet ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ β ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΎΡΠΈ ΡΠ΅Π³Π° ΡΠ° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° Π² ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ°. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΠΎΠ±ΡΡΠΈΡΠ΅Π»Π½ΠΈΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΈ ΠΎΡΡΠ°Π²Π° Π½Π΅Π·Π°ΡΠ΅Π³Π½Π°Ρ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΡΠΈΡΠ΅Π»Π΅Π½ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° Π³ΡΠ°ΡΠ° (Π΄Π° ΠΎΠΏΠΈΡΠ°Ρ)
Π‘Π΅Π³Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡΡ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΎΡ Π½Π°ΡΠ°Π»ΠΎ Π΄ΠΎ ΠΊΡΠ°ΠΉ.
ΠΠ°Π½Π΅Π»Π°ΡΠ° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈΠΆΠ΄Π°Π½Π΅ Π½Π° Π±Π°ΠΉΡΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΊΠΈ ΡΡΠ±, Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ, Π΄ΠΎΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ ΠΎΡΡΠ°Π²Π°Ρ ΡΠ΄ΠΎΠ±Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΌΡΡΡΠΎ, Π° ΠΏΡΠ»Π½ΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ - Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅, ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠ²ΠΈΠ²Π°Π½Π΅, ΠΈΠ·Π±ΠΎΡ Π½Π° Π²ΡΠ·Π»ΠΈ - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π±Π΅Π· ΠΌΠΈΡΠΊΠ°.
Π‘Π΅Π³Π° ΡΡΠ°ΡΠ΅ΡΠ°ΡΠ° ΠΈΠΌΠ°Ρ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° Ρ ΡΠ°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π° zli Π½Π°ΠΊΡΠ°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ°ΡΠ΅ΡΠ° Ρ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»Π°Π³ΠΎΠ²Π΅ βtrace ΠΈ βtrace-streams-dir.
Π Π°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ
- Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠ΄Π΅ΠΊΠ°. ΠΠΎΠ΄Π΅ΡΠΈΡΠ΅ Partition ΠΈ bitpack ΡΠ΅Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ. ΠΠΎΠ΄Π΅ΠΊΡΡ Floating-point bitsplit Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΊΠΎΠ΄Π΅ΡΠΈ ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΈ Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈ fp16, fp32, fp64 ΠΈ bf16 ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠ°Π·Π±ΠΈΠ²Π°Π½Π΅ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΠ±Ρ Π²Π°ΡΠ° (split_byrange), ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ Π·Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°, ΠΊΠΎΠ΄Π΅ΠΊ sentinel, Π³ΡΠ°Ρ lz4 ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ tryParseInt ΠΈ splitByParam.
- API-ΡΠΎ Π΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΎ.
- Π€ΡΠ·ΠΈΠ½Π³ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ.
- ΠΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ Π·Π° Π²ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
