我有我一直在使用升壓輸入輸出流和過濾流緩衝帶的zlib壓縮數據的大文件:升壓IO流和zlib加快
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);
對於速度,我初始化zlib庫有以下幾點:
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));
我解是這樣的:
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));
我的問題是是否有一個有哪些方法可以加速充氣(解壓縮)操作?目前,壓縮需要大約83%的數據訪問時間,我真的需要更快地實現這一點。任何建議將不勝感激。