commit | 3ffa72d0f03b75812c0ce367c1958ff9a80a6aeb | [log] [tgz] |
---|---|---|
author | Jonathan Yu <yujo@chromium.org> | Fri Jul 07 07:05:10 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Sat Jul 08 23:36:26 2017 |
tree | 39063787791209de8fe492bf16d581d810bcb6ba | |
parent | f1377f722271b4b5a090d4dba10201031d31f20d [diff] |
Add AudioFrame::ResetWithoutMuting() to address performance regression. Prior to https://codereview.webrtc.org/2750783004/ Reset() intentionally did not zero out the buffer. After that change, callers calling Reset() and then mutable_data() were performing a wasteful zeroing. This change adds ResetWithoutMuting() to match the old behavior and switches the sole non-test caller of Reset() to use ResetWithoutMuting() instead. Prior to this change (optimized, Linux): $ out/Default/webrtc_perf_tests --gtest_filter=NetEqPerformanceTest.Run* \ --gtest_repeat=10 | grep neteq_performance *RESULT neteq_performance: 10_pl_10_drift= 4051 ms *RESULT neteq_performance: 0_pl_0_drift= 1768 ms *RESULT neteq_performance: 10_pl_10_drift= 3666 ms *RESULT neteq_performance: 0_pl_0_drift= 1690 ms *RESULT neteq_performance: 10_pl_10_drift= 3685 ms *RESULT neteq_performance: 0_pl_0_drift= 1693 ms *RESULT neteq_performance: 10_pl_10_drift= 3720 ms *RESULT neteq_performance: 0_pl_0_drift= 1690 ms *RESULT neteq_performance: 10_pl_10_drift= 3780 ms *RESULT neteq_performance: 0_pl_0_drift= 1728 ms *RESULT neteq_performance: 10_pl_10_drift= 3733 ms *RESULT neteq_performance: 0_pl_0_drift= 1737 ms *RESULT neteq_performance: 10_pl_10_drift= 3781 ms *RESULT neteq_performance: 0_pl_0_drift= 1744 ms *RESULT neteq_performance: 10_pl_10_drift= 3712 ms *RESULT neteq_performance: 0_pl_0_drift= 1731 ms *RESULT neteq_performance: 10_pl_10_drift= 3681 ms *RESULT neteq_performance: 0_pl_0_drift= 1691 ms *RESULT neteq_performance: 10_pl_10_drift= 3681 ms *RESULT neteq_performance: 0_pl_0_drift= 1690 ms With this change: $ out/Default/webrtc_perf_tests --gtest_filter=NetEqPerformanceTest.Run* \ --gtest_repeat=10 | grep neteq_performance *RESULT neteq_performance: 10_pl_10_drift= 3824 ms *RESULT neteq_performance: 0_pl_0_drift= 1632 ms *RESULT neteq_performance: 10_pl_10_drift= 3502 ms *RESULT neteq_performance: 0_pl_0_drift= 1521 ms *RESULT neteq_performance: 10_pl_10_drift= 3520 ms *RESULT neteq_performance: 0_pl_0_drift= 1534 ms *RESULT neteq_performance: 10_pl_10_drift= 3517 ms *RESULT neteq_performance: 0_pl_0_drift= 1530 ms *RESULT neteq_performance: 10_pl_10_drift= 3521 ms *RESULT neteq_performance: 0_pl_0_drift= 1527 ms *RESULT neteq_performance: 10_pl_10_drift= 3511 ms *RESULT neteq_performance: 0_pl_0_drift= 1533 ms *RESULT neteq_performance: 10_pl_10_drift= 3518 ms *RESULT neteq_performance: 0_pl_0_drift= 1523 ms *RESULT neteq_performance: 10_pl_10_drift= 3503 ms *RESULT neteq_performance: 0_pl_0_drift= 1524 ms *RESULT neteq_performance: 10_pl_10_drift= 3514 ms *RESULT neteq_performance: 0_pl_0_drift= 1534 ms *RESULT neteq_performance: 10_pl_10_drift= 3501 ms *RESULT neteq_performance: 0_pl_0_drift= 1530 ms BUG=webrtc:7343,chromium:738852,chromium:738839 Change-Id: Idcbb276ca0ed27fff95164a73f1c1fa310175ee5 Reviewed-on: https://chromium-review.googlesource.com/563021 Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org> Reviewed-by: Olga Sharonova <olka@webrtc.org> Reviewed-by: Tommi <tommi@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18939}
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.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.