ladybird/Tests
Timothy Flynn eed956b473 AK: Increase LittleEndianOutputBitStream's buffer size and remove loops
This is very similar to the LittleEndianInputBitStream bit buffer change
from 8e834d4bb2.

We currently buffer one byte of data for the underlying stream. And when
we put bits onto that buffer, we do so 1 bit at a time.

This replaces the u8 buffer with a u64. And instead of looping at all,
we perform bitwise operations to write the desired number of bits.

Using the "enwik8" file as a test (100MB uncompressed, commonly used in
benchmarks: https://www.mattmahoney.net/dc/enwik8.zip), compression time
decreases from:

    13.62s to 10.9s on Serenity (cold)
    13.62s to 9.22s on Serenity (warm)
    2.93s to 2.32s on Linux

One caveat is that this requires explicitly flushing any leftover bits
when the caller is done with the stream. The byte buffer implementation
implicitly flushed its data every time the buffer was byte-aligned, as
doing so would always fill the byte. This is no longer the case. But for
now, this should be fine as the one user of this class, DEFLATE, already
has a "flush everything now that we're done" finalizer.
2023-04-02 10:54:37 +02:00
..
AK AK: Increase LittleEndianOutputBitStream's buffer size and remove loops 2023-04-02 10:54:37 +02:00
Kernel LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
LibAudio Tests: Correct FLAC spec test paths 2023-03-19 14:15:35 +00:00
LibC LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
LibCompress LibCompress: Implement block size validation for XZ streams 2023-04-01 13:57:54 +02:00
LibCore AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
LibCpp AK: Rename Stream::read_entire_buffer to Stream::read_until_filled 2023-03-13 15:16:20 +00:00
LibCrypto Tests/LibCrypto: Test block splitting logic for SHA1/SHA256 2023-03-24 15:28:10 +00:00
LibEDID AK: Make FixedPoint(FloatingPoint) ctor round instead of truncating 2023-03-03 09:23:02 +00:00
LibELF LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
LibGfx LibGfx/JPEG: More support for scans with a single component 2023-03-25 21:31:21 +01:00
LibGL LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
LibIMAP LibIMAP: Propagate OOM errors from decode_quoted_printable() 2023-03-09 14:47:45 +00:00
LibJS Everywhere: Use LibFileSystem where trivial 2023-03-21 19:03:21 +00:00
LibLocale LibJS+LibLocale: Port Intl.DateTimeFormat to String 2023-01-27 18:00:17 +00:00
LibMarkdown AK: Rename Stream::read_entire_buffer to Stream::read_until_filled 2023-03-13 15:16:20 +00:00
LibPDF Tests: Move test PDF files into Tests/LibPDF 2023-01-19 11:50:10 +00:00
LibRegex LibRegex: Make ^ and $ accept all LineTerminators instead of just '\n' 2023-03-25 15:44:05 +01:00
LibSQL Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
LibTest LibTest: Add EXPECT_NO_CRASH 2021-12-19 14:22:06 -08:00
LibTextCodec LibTextCodec+Everywhere: Port Decoders to new Strings 2023-02-19 17:15:47 +01:00
LibThreading Tests: Update thread tests and make them pass 2022-12-11 19:07:20 -07:00
LibTimeZone Tests: Add missing library dependency for LibTimeZone tests 2023-01-19 11:50:10 +00:00
LibTLS LibTLS: Check if certificate is self signed before importing it as CA 2023-03-27 15:34:28 +03:30
LibTTF Tests: Correct serenity_test() invocation for LibTTF 2023-01-19 11:50:10 +00:00
LibUnicode LibUnicode: Detect ZWJ sequences when filtering by emoji presentation 2023-03-05 20:21:57 +01:00
LibVideo Tests/LibVideo: Test to ensure that VP9 reference vector clamping works 2023-02-08 18:56:42 +00:00
LibWasm Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
LibWeb LibWeb: Fix application of intrinsic aspect ratio to flex column items 2023-04-02 06:45:44 +02:00
LibXML Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Spreadsheet Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
UserspaceEmulator Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
CMakeLists.txt Tests: Remove i686 support 2022-12-28 11:53:41 +01:00