snapcast icon indicating copy to clipboard operation
snapcast copied to clipboard

dynamic buffer pool, used for server TCP for the moment

Open aanno opened this issue 4 months ago • 0 comments

I did some profiling on snapcast (while working on #1423). From my measurements, I concluded that a dynamic buffer pool for audio data would increase the performance.

Hence this is such a dynamic buffer pool. It is at common/buffer_pool.* that makes it possible to use it in server and client. However, this PR only uses it for TCP in the server (for shared_const_buffer). But I guess it could be used in the client for for WS as well.

Pull Request Checklist

  • [x] Contributions must be licensed under the GPL-3.0 License

  • [x] This project loosely follows the Google C++ Style Guide

  • [x] For better compatibility with embedded toolchains, the used C++ standard should be limited to C++17

  • [x] Code should be formatted by running make reformat

  • [x] Branch from the develop branch and ensure it is up to date with the current develop branch before submitting your pull request. If it doesn't merge cleanly with develop, you may be asked to resolve the conflicts. Pull requests to master will be closed.

  • [x] Commits should be as small as possible while ensuring that each commit is correct independently (i.e., each commit should compile and pass tests).

  • [x] Pull requests must not contain compiled sources (already set by the default .gitignore) or binary files

  • [x] Test your changes as thoroughly as possible before you commit them. Preferably, automate your test by unit/integration tests. If tested manually, provide information about the test scope in the PR description (e.g. “Test passed: Upgrade version from 0.42 to 0.42.23.”).

  • Create Work In Progress [WIP] pull requests only if you need clarification or an explicit review before you can continue your work item.

  • If your patch is not getting reviewed or you need a specific person to review it, you can @-reply a reviewer asking for a review in the pull request or a comment, or you can ask for a review by contacting us via email.

  • Post review:

    • If a review requires you to change your commit(s), please test the changes again.
    • Amend the affected commit(s) and force push onto your branch.
    • Set respective comments in your GitHub review to resolved.
    • Create a general PR comment to notify the reviewers that your amendments are ready for another round of review.

aanno avatar Sep 12 '25 09:09 aanno