DĂ«sen Artikel ass schonn den zweeten am Thema High-Speed ââDatekompressioun. Den Ă©ischten Artikel beschreift e Kompressor deen mat enger Geschwindegkeet vun 10 GB / sec funktionnĂ©iert. pro Prozessor KĂ€r (Minimum Kompressioun, RTT-Min).
DĂ«se Kompressor ass schonn an der AusrĂŒstung vu forenseschen Duplikatore fir High-Speed-Kompressioun vu SpĂ€ichermedien Dumps Ă«mgesat ginn an d'Kraaft vun der Kryptografie verbesseren; et kann och benotzt ginn fir Biller vu virtuelle Maschinnen a RAM-Swap-Dateien ze komprimĂ©ieren wann se op HĂ©ichgeschwindegkeet spĂ€icheren SSD fiert.
Den éischten Artikel huet och d'Entwécklung vun engem Kompressiounsalgorithmus ugekënnegt fir Backupkopien vun HDD an SSD Disk Drive ze kompriméieren (mëttlere Kompressioun, RTT-Mid) mat wesentlech verbesserte Datekompressiounsparameter. Bis elo ass dëse Kompressor komplett fÀerdeg an dësen Artikel ass doriwwer.
E Kompressor deen den RTT-Mid Algorithmus implementéiert bitt e KompressiounsverhÀltnis verglÀichbar mat Standardarchiver wéi WinRar, 7-Zip, déi am High-Speed-Modus operéieren. Zur selwechter ZÀit ass seng Operatiounsgeschwindegkeet op d'mannst eng Uerdnung vun der Gréisst méi héich.
D'Geschwindegkeet vun der Verpakung / Auspackung vun Daten ass e kriteschen Parameter deen den Ămfang vun der Uwendung vu Kompressiounstechnologien bestĂ«mmt. Et ass onwahrscheinlech datt iergendeen drun denken en Terabyte vun Daten mat enger Geschwindegkeet vun 10-15 MegaBytes pro Sekonn ze komprimĂ©ieren (dĂ«st ass genau d'Geschwindegkeet vun den Archiver am Standardkompressiounsmodus), well et bal zwanzeg Stonnen mat enger voller Prozessorbelaaschtung dauert. .
Op der anerer SÀit kann deeselwechten Terabyte mat Geschwindegkeete vun der Uerdnung vun 2-3Gigabytes pro Sekonn an ongeféier zéng Minutten kopéiert ginn.
Dofir ass d'Kompressioun vu grousser Volumen Informatioun wichteg wann se mat enger Geschwindegkeet net manner wéi d'Geschwindegkeet vum realen Input / Output gemaach gëtt. Fir modern Systemer ass dëst op d'mannst 100 Megabytes pro Sekonn.
Moderne Kompressere kënnen esou Geschwindegkeet nëmmen am "schnell" Modus produzéieren. Et ass an dësem aktuelle Modus datt mir den RTT-Mid Algorithmus mat traditionelle Kompressere verglÀichen.
Comparativ Testen vun engem neie Kompressiounsalgorithmus
Den RTT-Mid Kompressor huet als Deel vum Testprogramm geschafft. An enger richteger "schaffen" Applikatioun funktionnéiert et vill méi séier, et benotzt Multithreading clever a benotzt en "normalen" Compiler, net C #.
Zënter datt d'Kompressere, déi am komparativen Test benotzt ginn, op verschidde Prinzipien gebaut ginn a verschidden Zorte vun Daten kompriméieren anescht, fir d'Objektivitéit vum Test, gouf d'Method fir d'"Duerchschnëttstemperatur am Spidol" ze moossen ...
Eng sektor-fir-sektor-Dump-Datei vun der logescher Disk, déi de Betribssystem enthÀlt, gouf erstallt. Windows 10Dëst ass déi natierlechst Mëschung aus verschiddene Datenstrukturen, déi op all Computer fonnt gëtt. D'Kompriméiere vun dëser Datei erlaabt eis, d'Geschwindegkeet an d'KompressiounsverhÀltnis vum neien Algorithmus mat de fortgeschrattsten Kompresseren ze verglÀichen, déi a modernen Archivierungsprogrammer benotzt ginn.
Hei ass d'Dump Datei:

D'Dumpdatei gouf mat PTT-Mid, 7-Zip a WinRar Kompressere kompriméiert. De WinRar a 7-Zip Kompressor goufen op maximal Geschwindegkeet gesat.
Kompressor leeft 7-Zip:

Et lued de Prozessor ëm 100%, wÀhrend d'Duerchschnëttsgeschwindegkeet fir den Originaldump ze liesen ongeféier 60 MegaBytes / sec.
Kompressor leeft winrar:

D'Situatioun ass Àhnlech, de Prozessorbelaaschtung ass bal 100%, déi duerchschnëttlech Dump Liesgeschwindegkeet ass ongeféier 125 Megabytes / sec.
Wéi am virege Fall ass d'Geschwindegkeet vum Archiver limitéiert duerch d'FÀegkeeten vum Prozessor.
De Kompressor Testprogramm leeft elo RTT-Mëtt:

De Screenshot weist datt de Prozessor op 50% gelueden ass an de Rescht vun der ZÀit idle ass, well et néierens ass fir déi kompriméiert Donnéeën eropzelueden. D'Dataupload-Disk (Disk 0) ass bal voll gelueden. D'Date Liesgeschwindegkeet (Disk 1) variéiert staark, awer am Duerchschnëtt méi wéi 200 MegaBytes / sec.
D'Geschwindegkeet vum Kompressor ass an dësem Fall limitéiert duerch d'FÀegkeet fir kompriméiert Daten op Disk 0 ze schreiwen.
Elo de KompressiounsverhÀltnis vun den resultéierende Archiven:



Et kann gesi ginn datt den RTT-Mid Kompressor déi bescht Aarbecht vu Kompressioun gemaach huet; d'Archiv déi et erstallt huet war 1,3 GigaBytes méi kleng wéi de WinRar Archiv an 2,1 GigaBytes méi kleng wéi de 7z Archiv.
ZÀit fir d'Archiv ze kreéieren:
- 7-Zip - 26 Minutten 10 Sekonnen;
- WinRar - 17 Minutten 40 Sekonnen;
- RTT-Mëtt - 7 Minutten 30 Sekonnen.
Sou konnt och en Test, net optimiséierte Programm, mam RTT-Mid Algorithmus, en Archiv méi wéi zwee an en halleft Mol méi séier erstellen, wÀhrend d'Archiv dÀitlech méi kleng ass wéi dee vu senge Konkurrenten ...
DĂ©i, dĂ©i d'Screenshots net gleewen, kĂ«nnen hir AuthentizitĂ©it selwer kontrollĂ©ieren. Den Testprogramm ass verfĂŒgbar um , download a kontrollĂ©ieren.
Awer nĂ«mmen op Prozessoren mat AVX-2 Support, ouni ĂnnerstĂ«tzung fir dĂ«s Instruktioune funktionnĂ©iert de Kompressor net, a testen den Algorithmus net op eeler AMD Prozessoren, si si lues wat d'AusfĂ©ierung vun AVX Instruktiounen ugeet ...
Kompressiounsmethod benotzt
Den Algorithmus benotzt eng Method fir widderholl Textfragmenter an Bytegranularitéit ze indexéieren. Dës Kompressiounsmethod ass scho laang bekannt, awer gouf net benotzt well d'passende Operatioun ganz deier war wat déi néideg Ressourcen ugeet a vill méi ZÀit erfuerdert wéi e Wierderbuch ze bauen. Also ass den RTT-Mid Algorithmus e klassescht Beispill fir "zréck an d'Zukunft" ze plënneren ...
De PTT-Kompressor benotzt en eenzegaartegen High-Speed-Match Sich Scanner, deen eis erlaabt de Kompressiounsprozess ze beschleunegen. E selwergemaachte Scanner, dëst ass "meng Charme ...", "et ass zimlech deier, well et ass komplett handgemaach" (am Assembler geschriwwen).
De Match Sich Scanner gëtt no engem zwee-Niveau probabilistesche Schema gemaach: éischtens gëtt d'PrÀsenz vun engem "Zeeche" vun engem Match gescannt, an nëmmen nodeems de "Schëld" op dëser Plaz identifizéiert ass, d'Prozedur fir e richtege Match z'entdecken. ass ugefaangen.
D'Match Sichfenster huet eng onberechenbar Gréisst, ofhÀngeg vum Grad vun der Entropie am veraarbechten Dateblock. Fir komplett zoufÀlleg (inkompressibel) Donnéeën huet et eng Gréisst vu Megabytes, fir Daten mat Wiederholungen ass et ëmmer méi grouss wéi e Megabyte.
Awer vill modern Dateformate sinn inkompressibel a lafen e Ressourceintensive Scanner duerch si ass nëtzlos an verschwendeg, sou datt de Scanner zwee Operatiounsmodi benotzt. Als éischt gi Sektioune vum Quelltext mat méiglechen Widderhuelunge gesicht; dës Operatioun gëtt och mat enger probabilistescher Method duerchgefouert a gëtt ganz séier gemaach (mat enger Geschwindegkeet vu 4-6 GigaBytes / sec). D'Gebidder mat méigleche Matcher ginn dann vum Haaptscanner veraarbecht.
Indexkompressioun ass net ganz effizient, Dir musst duplizéiert Fragmenter mat Indizes ersetzen, an d'Index-Array reduzéiert de KompressiounsverhÀltnis wesentlech.
Fir de KompressiounsverhÀltnis ze erhéijen, ginn net nëmme komplette Matcher vu Byte Strings indexéiert, awer och deelweis, wann d'String passend an onverglÀicht Bytes enthÀlt. Fir dëst ze maachen, enthÀlt den Indexformat e Matchmaskefeld, deen déi passend Bytes vun zwee Blocken ugeet. Fir nach méi Kompressioun gëtt Indexéierung benotzt fir e puer deelweis passende Blocken op den aktuelle Block ze iwwerlageren.
All dëst huet et méiglech gemaach am PTT-Mid Kompressor e KompressiounsverhÀltnis ze kréien, verglÀichbar mat Kompressoren, déi mat der Wierderbuchmethod gemaach goufen, awer vill méi séier schaffen.
Geschwindegkeet vum neie Kompressiounsalgorithmus
Wann de Kompressor mat exklusivem Gebrauch vum Cache-Speicher funktionnéiert (4 Megabytes sinn pro Fuedem erfuerderlech), da lÀit d'Betribsgeschwindegkeet vun 700-2000 Megabytes / sec. pro Prozessor KÀr, jee no der Zort vun Daten kompriméiert an hÀnkt wéineg op der Betribssystemer Frequenz vum Prozessor.
Mat enger Multi-threaded Implementatioun vum Kompressor gëtt effektiv Skalierbarkeet duerch d'Gréisst vum drëtten Niveau Cache bestëmmt. Zum Beispill, 9 MegaBytes Cache Memory "u Bord" ze hunn, ass et kee Sënn fir méi wéi zwee KompressiounsfÀegkeeten ze lancéieren; d'Geschwindegkeet wÀert dovun net eropgoen. Awer mat engem Cache vun 20 Megabytes kënnt Dir scho fënnef KompressiounsfÀegkeeten lafen.
Och d'Latenz vum RAM gëtt e wichtege Parameter deen d'Geschwindegkeet vum Kompressor bestëmmt. Den Algorithmus benotzt zoufÀlleg Zougang zum OP, e puer vun deenen net an de Cache-Erënnerung kommen (ongeféier 10%) an et muss Idle, op Daten aus dem OP waarden, wat d'Vitesse vun der Operatioun reduzéiert.
Den I/O-System beaflosst d'Kompressiounsgeschwindegkeet dÀitlech. I/O-Ufroen un de RAM-Block-CPU froen no Daten un, wat och d'Kompressiounsgeschwindegkeet reduzéiert. Dëst Problem ass bedeitend fir Laptops an Desktops. Serveren Et ass manner bedeitend wéinst enger méi fortgeschrattener Systembus-Zougangskontrolleenheet a Multikanal-RAM.
Am ganzen Text am Artikel schwĂ€tze mir iwwer Kompressioun; Dekompressioun bleift ausserhalb vum Ămfang vun dĂ«sem Artikel well "alles mat Schockela bedeckt ass". Dekompressioun ass vill mĂ©i sĂ©ier a gĂ«tt limitĂ©iert duerch I/O Geschwindegkeet. Ee kierperleche KĂ€r an engem Fuedem bitt einfach Auspackungsgeschwindegkeet vun 3-4 GB / sec.
Dëst ass wéinst der Verontreiung vun enger Match Sich Operatioun wÀhrend dem Dekompressiounsprozess, deen d'Haaptressourcen vum Prozessor an d'Cache-Erënnerung wÀhrend der Kompressioun "frësst".
ZouverlÀssegkeet vun der kompriméierter Datelagerung
Wéi den Numm vun der ganzer Klass vu Software, déi Datekompressioun (Archiver) benotzt, seet, si si fir laangfristeg SpÀichere vun Informatioun entwéckelt, net fir Joeren, mee fir Jorhonnerte a Joerdausend ...
WÀrend der SpÀichere verléieren d'SpÀichermedien e puer Daten, hei ass e Beispill:

Dësen "analogen" Informatiounsdréier ass dausend Joer al, e puer Fragmenter si verluer gaangen, awer allgemeng ass d'Informatioun "liesbar" ...
Keen vun de verantwortleche Hiersteller vu modernen digitale Datespeichersystemer an digitale Medien fir si bitt Garantien vun der kompletter Datesécherheet fir méi wéi 75 Joer.
An dëst ass e Problem, awer e verréckten Problem, eis Nokommen léisen et ...
Digital Datespeichersystemer kënnen Daten verléieren net nëmmen no 75 Joer, Fehler an Daten kënnen zu all Moment optrieden, och wÀhrend hirer Opnam, probéieren se dës Verzerrungen ze minimiséieren andeems se Redundanz benotzen an se mat Fehlerkorrektursystemer korrigéieren. Redundanz- a Korrektursystemer kënnen net ëmmer verluer Informatioun restauréieren, a wa se et maachen, gëtt et keng Garantie datt d'Restauratiounsoperatioun richteg ofgeschloss gouf.
An dat ass och e grousse Problem, awer net e verstoppt, mee en aktuelle.
Modern Kompressere benotzt fir digital DonnĂ©eĂ«n ze archivĂ©ieren sinn op verschidde Ănnerunge vun der Wierderbuchmethod gebaut, a fir sou Archiven ass de Verloscht vun engem InformatiounsstĂ©ck e fatale Event; et gĂ«tt souguer en etablĂ©ierte BegrĂ«ff fir sou eng Situatioun - e "gebrach" Archiv ...
Déi geréng ZouverlÀssegkeet vun der SpÀichere vun Informatioun an Archiven mat Wierderbuchkompressioun ass mat der Struktur vun de kompriméierte Donnéeën assoziéiert. D'Informatioun an esou engem Archiv enthÀlt net de Quelltext, d'Zuel vun den Entréen am Wierderbuch sinn do gespÀichert, an d'Wörterbuch selwer gëtt dynamesch vum aktuellen kompriméierten Text geÀnnert. Wann en Archivfragment verluer oder beschiedegt ass, kënnen all spéider Archiv-Entréen weder duerch den Inhalt oder duerch d'LÀngt vun der Entrée am Wierderbuch identifizéiert ginn, well et net kloer ass wat d'Wörterbuch-Entréenummer entsprécht.
Et ass onméiglech Informatiounen aus esou engem "gebrach" Archiv ze restauréieren.
Den RTT Algorithmus baséiert op enger méi zouverléisseger Method fir kompriméiert Daten ze spÀicheren. Et benotzt d'Indexmethod fir d'Rechnung fir Fragmenter ze widderhuelen. Dës Approche fir d'Kompressioun erlaabt Iech d'Konsequenze vun der Verzerrung vun der Informatioun op de SpÀichermedium ze minimiséieren, a ville FÀll automatesch Verzerrungen ze korrigéieren, déi wÀhrend Informatiounsspeicher entstoen.
Dëst ass wéinst der Tatsaach datt d'Archivdatei am Fall vun der Indexkompressioun zwee Felder enthÀlt:
- e Quelltextfeld mat Widderhuelungssektiounen dovun ofgeholl;
- Index Feld.
D'Indexfeld, dat kritesch ass fir d'Erhuelung vun Informatioun, ass net grouss an der Gréisst a ka fir zouverlÀsseg Datelagerung duplizéiert ginn. Dofir, och wann e Fragment vum Quelltext oder Index-Array verluer ass, gëtt all aner Informatioun ouni Probleemer restauréiert, wéi am Bild mat engem "analogen" SpÀichermedium.
Nodeeler vum Algorithmus
Et gi keng Virdeeler ouni Nodeeler. D'Indexkompressiounsmethod komprimĂ©iert net kuerz Widderhuelungssequenzen. DĂ«st ass wĂ©inst den AschrĂ€nkungen vun der Indexmethod. Indexe sinn op d'mannst 3 Bytes grouss a kĂ«nne bis zu 12 Bytes grouss sinn. Wann eng Widderhuelung mat enger mĂ©i klenger GrĂ©isst begĂ©int ass wĂ©i den Index deen et beschreift, da gĂ«tt et net berĂŒcksichtegt, egal wĂ©i dacks esou Wiederholungen an der komprimĂ©ierter Datei festgestallt ginn.
Déi traditionell Wierderbuch Kompressiounsmethod kompriméiert effektiv multiple Wiederholungen vu kuerzer LÀngt an erreecht dofir e méi héije KompressiounsverhÀltnis wéi Indexkompressioun. Richteg, dëst ass erreecht wéinst der héijer Belaaschtung op den Zentralprozessor; fir datt d'Wierderbuchmethod ufÀnkt Daten méi effizient ze kompriméieren wéi d'Indexmethod, muss se d'Datenveraarbechtungsgeschwindegkeet op 10-20 Megabytes pro Sekonn op real reduzéieren Recheninstallatiounen mat enger voller CPU-Laascht.
Esou niddreg Geschwindegkeete sinn inakzeptabel fir modern Datespeichersystemer a si vu méi "akademeschen" Interessi wéi praktesch.
De Grad vun der Informatiounskompressioun gĂ«tt wesentlech erhĂ©icht an der nĂ€chster Ănnerung vum RTT Algorithmus (RTT-Max), dee schonn an der EntwĂ©cklung ass.
Also, wéi ëmmer, fortgesat ...
Source: will.com
