1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00
serenity/Userland/Libraries
kleines Filmröllchen c2340a1b1f LibDSP: Optimize note processing
Previously, a collection of notes (Vector or Array) would be created and
promptly deleted for every sample (at least 44 thousand times per
second!). This was measured to be one of the most significant
performance drawbacks as well as the most obvious performance
improvement I could currently find here. Although it will not cause
Piano to lag currently (at least on virtualized systems), I see an
incoming issue once we get the capability to use more processors.

Now, we use a HashMap correlating pitches to notes, and Track reuses the
data structure in order to avoid reallocations. That is the reason for
introducing the fast clear_with_capacity to HashMap.
2021-11-11 09:19:17 +01:00
..
LibArchive Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibAudio Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibC Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibCards LibGfx: Use ErrorOr<T> for Bitmap::try_create() 2021-11-08 00:35:27 +01:00
LibChess Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibCompress Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibConfig ConfigServer+LibConfig: Add way for clients to listen for config changes 2021-08-26 23:41:38 +02:00
LibCore Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibCoredump Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibCpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibCrypt Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
LibCrypto LibCrypto: Pass AK::Bytes by value 2021-11-11 01:27:46 +01:00
LibDebug Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibDesktop Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibDl Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
LibDSP LibDSP: Optimize note processing 2021-11-11 09:19:17 +01:00
LibELF Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibFileSystemAccessClient Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibGemini Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibGfx Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibGL LibGfx: Use ErrorOr<T> for Bitmap::try_create() 2021-11-08 00:35:27 +01:00
LibGUI Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibHTTP Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
LibImageDecoderClient Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibIMAP Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibIPC Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibJS Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibKeyboard LibKeyboard: Use ErrorOr<T> for CharacterMap::fetch_system_map() 2021-11-08 00:35:27 +01:00
LibLine Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibM Libraries: Fix typos 2021-10-01 01:06:40 +01:00
LibMarkdown Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibPCIDB Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibPDF Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibProtocol RequestServer+LibProtocol: Add an 'EnsureConnection' IPC endpoint 2021-09-28 22:32:31 +02:00
LibPthread LibPthread: Correct nonsensical loop exit condition in RWLock unlock 2021-09-28 12:34:51 +03:30
LibRegex Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibSanitizer LibSanitizer+AK: Add float cast overflow handler 2021-08-08 10:55:36 +02:00
LibSQL AK: Make ByteBuffer::try_* functions return ErrorOr<void> 2021-11-10 21:58:58 +01:00
LibSymbolication AK: Use ErrorOr<T> for MappedFile factories 2021-11-08 00:35:27 +01:00
LibSyntax LibWeb: Implement first draft of CSS syntax highlighting :^) 2021-10-23 19:07:44 +02:00
LibSystem Kernel+LibSystem: Add a 4th syscall argument 2021-07-25 14:08:50 +02:00
LibTest Everywhere: Remove unused ArgsParser header 2021-11-01 21:12:58 +01:00
LibTextCodec Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibThreading LibThreading: Remove redundant method 2021-11-02 11:07:26 +01:00
LibTLS Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibUnicode Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibUSBDB LibUSBDB: Fix vendor id decoding 2021-06-18 19:41:25 +04:30
LibVideo Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibVT Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibWasm AK: Make ByteBuffer::try_* functions return ErrorOr<void> 2021-11-10 21:58:58 +01:00
LibWeb Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibWebSocket Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
LibX86 LibX86: Take load base address into consideration during disassembly 2021-10-25 12:14:26 +02:00
CMakeLists.txt Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00