commit | 4637b6afca431be8caf1d22151a2cbb2e86a33d5 | [log] [tgz] |
---|---|---|
author | aleloi <aleloi@webrtc.org> | Wed Feb 01 03:43:31 2017 -0800 |
committer | Commit bot <commit-bot@chromium.org> | Wed Feb 01 11:43:31 2017 +0000 |
tree | fda596903f648a13a777b1ac38e92f1bb48cdca0 | |
parent | 35fc2aa82fb5a562f3f76f2b91a55f05ebfd4874 [diff] |
Consistent 30% improvement in audio mixer running time. (Or, in less flattering terms, fixing a performance issue introduced a few months ago by me). In GN release mode (is_debug = false), the version of the mixer code before this CL generated code that multiplied each sample (tens of thousands/second for each input stream) with a floating point number. This number is almost always exactly 1.0f. The only situation when it's not 1 is when an audio steam is added or removed. For one input stream early return leads to a 30% improvement of audio mixing time profiled on x86-64 under a release build (is_debug = false, enable_profiling, enable_full_stack_frames_for_profiling) with 16kHz and no APM limiter. There can be up to 3 streams. BUG=chromium:687502 Review-Url: https://codereview.webrtc.org/2659423002 Cr-Commit-Position: refs/heads/master@{#16396}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others. This page is maintained by the Google Chrome team.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.