CatgirlIntelligenceAgency/code/libraries/big-string
Viktor Lofgren e4372289a5 Use fixed buffers for BigString compression and decompression to reduce GC churn.
fixup! Use fixed buffers for BigString compression and decompression to reduce GC churn.
2023-06-19 17:58:19 +02:00
..
src Use fixed buffers for BigString compression and decompression to reduce GC churn. 2023-06-19 17:58:19 +02:00
build.gradle Move all code to a code directory. 2023-03-07 17:14:32 +01:00
readme.md Move all code to a code directory. 2023-03-07 17:14:32 +01:00

Big String

Microlibrary that offers string compression. This is useful when having to load tens of thousands of HTML documents in memory during conversion. XML has been described as the opposite of a compression scheme, and as a result, HTML compresses ridiculously well.

Demo

List<BigString> manyBigStrings = new ArrayList<>();

for (var file : files) {
    // BigString.encode may or may not compress the string 
    // depeneding on its size
    manyBigStrings.add(BigString.encode(readFile(file)));
}

for (var bs : manyBigStrings) {
    String decompressedString = bs.decompress();
    byte[] bytes = bs.getBytes();
    int len = bs.getLength();
}