我了解到lz4算法非常快,而且具有相当不错的压缩效果。但是在我的测试应用程序中,压缩后的文本比源文本还要大。这是什么问题?
srand(time(NULL));
std::string text;
for (int i = 0; i < 65535; ++i)
text.push_back((char)(0 + rand() % 256));
cout << "Text size: " << text.size() << endl;
char *compressedData = new char[text.size() * 2];
int compressedSize = LZ4_compress(text.c_str(), text.size(), compressedData);
cout << "Compressed size: " << compressedSize << endl;
我也尝试了LZ4_compress,但结果是一样的。但如果我生成具有相同符号或说具有两个不同符号的字符串,则会出现压缩。