ich eine große Datei von Daten habe ich mit Zlib komprimiert boost iostreams mit und Filterstrompuffer:Boost-IO-Stream und ZLib beschleunigen
boost::iostreams::array_source uncompressedArray(reinterpret_cast< const char* >(&uncompressedData[0]), uncompressedData.size());
boost::iostreams::filtering_streambuf<boost::iostreams::output> out;
out.push(*m_compressor);
out.push(boost::iostreams::char_back_inserter(compressedData));
boost::iostreams::copy(uncompressedArray, out);
Für Geschwindigkeit Ich bin Initialisierung der zlib-Bibliothek mit dem folgenden:
boost::iostreams::zlib_params params;
params.level = boost::iostreams__zlib::best_speed;
params.mem_level = 9;
m_compressor.reset(new boost::iostreams::zlib_compressor(params, 131072));
m_decompressor.reset(new boost::iostreams::zlib_decompressor(params, 131072));
Meine Dekomprimierer wie folgt aussieht:
boost::iostreams::array_source compressedArray(reinterpret_cast< const char* >(&compressedData[0]), compressedData.size());
boost::iostreams::filtering_streambuf<boost::iostreams::input> m_in;
m_in.push(*m_decompressor);
m_in.push(compressedArray);
boost::iostreams::copy(m_in, boost::iostreams::char_back_inserter(uncompressedData));
Meine Frage gibt es eine Auf welche Art und Weise kann ich den Vorgang des Aufblasens (Dekomprimierens) beschleunigen? Momentan beansprucht die Komprimierung etwa 83% meiner Datenzugriffszeit und ich muss diese Geschwindigkeit wirklich erhöhen. Irgendwelche Vorschläge würden sehr geschätzt werden.