Nehmen wir an, ich muss einige Daten von einem Computer zu einem anderen über ein ziemlich schnelles Netzwerk senden ... zum Beispiel eine Standard-100-Mbit-Verbindung (~ 10 MB / s). Meine Festplatten sind Standard-Festplatten, daher liegt ihre Geschwindigkeit zwischen 30 MB / s und 100 MB / s. Ich denke also, dass das schnelle Komprimieren der Daten helfen könnte.
Aber ... ich möchte nicht durch die CPU eingeschränkt werden. Wenn ich einen Algorithmus wähle, der die CPU stark beansprucht, wird die Übertragung tatsächlich langsamer als ohne Komprimierung.
Dies ist bei Kompressoren wie GZIP und BZIP2 schwierig, da Sie die Komprimierungsstärke normalerweise einmal für die gesamte Übertragung einstellen und meine Datenströme manchmal einfach und manchmal schwer zu komprimieren sind. Dies macht den Prozess suboptimal, da ich manchmal nicht die volle CPU verwende. und manchmal ist die Bandbreite nicht ausgelastet.
Gibt es ein Komprimierungsprogramm, das sich an die aktuelle CPU / Bandbreite anpasst und den Sweet Spot erreicht, damit die Übertragung optimal ist? Ideal für Linux, aber ich bin immer noch neugierig auf alle Lösungen. Ich würde gerne etwas sehen, das mit GZIP / BZIP2-Dekompressoren kompatibel ist, aber das ist nicht notwendig.
Daher möchte ich die Gesamtübertragungszeit optimieren und nicht nur die Anzahl der zu sendenden Bytes.
Außerdem brauche ich keine Echtzeit-Dekomprimierung ... Echtzeit-Komprimierung ist genug. Der Zielhost kann die Daten später in seiner Freizeit verarbeiten. Ich weiß, dass sich daran nicht viel ändert (die Komprimierung ist normalerweise viel CPU-intensiver als die Dekomprimierung), aber wenn es eine Lösung gibt, die diese Tatsache nutzen könnte, umso besser.
Jedes Mal, wenn ich andere Daten übertrage, möchte ich diese einmaligen Übertragungen wirklich so schnell wie möglich durchführen. Ich werde also nicht davon profitieren, wenn mehrere Übertragungen aufgrund der stärkeren Komprimierung schneller erfolgen.
Vielen Dank,