Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: content/renderer/media/rtc_peer_connection_handler.cc

Issue 306923008: Add tracing to measure the entire time it takes to satisfy a getStats request. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/rtc_peer_connection_handler.h" 5 #include "content/renderer/media/rtc_peer_connection_handler.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 private: 226 private:
227 blink::WebRTCVoidRequest webkit_request_; 227 blink::WebRTCVoidRequest webkit_request_;
228 SessionDescriptionRequestTracker tracker_; 228 SessionDescriptionRequestTracker tracker_;
229 }; 229 };
230 230
231 // Class mapping responses from calls to libjingle 231 // Class mapping responses from calls to libjingle
232 // GetStats into a blink::WebRTCStatsCallback. 232 // GetStats into a blink::WebRTCStatsCallback.
233 class StatsResponse : public webrtc::StatsObserver { 233 class StatsResponse : public webrtc::StatsObserver {
234 public: 234 public:
235 explicit StatsResponse(const scoped_refptr<LocalRTCStatsRequest>& request) 235 explicit StatsResponse(const scoped_refptr<LocalRTCStatsRequest>& request)
236 : request_(request.get()), response_(request_->createResponse().get()) {} 236 : request_(request.get()), response_(request_->createResponse().get()) {
237 // Measure the overall time it takes to satisfy a getStats request.
238 TRACE_EVENT_ASYNC_BEGIN0("webrtc", "getStats_Native", this);
239 }
237 240
238 virtual void OnComplete( 241 virtual void OnComplete(
239 const std::vector<webrtc::StatsReport>& reports) OVERRIDE { 242 const std::vector<webrtc::StatsReport>& reports) OVERRIDE {
240 TRACE_EVENT0("webrtc", "StatsResponse::OnComplete") 243 TRACE_EVENT0("webrtc", "StatsResponse::OnComplete")
no longer working on chromium 2014/06/02 11:03:21 do we still need this TRACE_EVENT0?
tommi (sloooow) - chröme 2014/06/02 11:27:48 Yes, this one is still valuable. It covers the ca
241 for (std::vector<webrtc::StatsReport>::const_iterator it = reports.begin(); 244 for (std::vector<webrtc::StatsReport>::const_iterator it = reports.begin();
242 it != reports.end(); ++it) { 245 it != reports.end(); ++it) {
243 if (it->values.size() > 0) { 246 if (it->values.size() > 0) {
244 AddReport(*it); 247 AddReport(*it);
245 } 248 }
246 } 249 }
250
251 // Record the getSync operation as done before calling into Blink so that
252 // we don't skew the perf measurements of the native code with whatever the
253 // callback might be doing.
254 TRACE_EVENT_ASYNC_END0("webrtc", "getStats_Native", this);
255
247 request_->requestSucceeded(response_); 256 request_->requestSucceeded(response_);
248 } 257 }
249 258
250 private: 259 private:
251 void AddReport(const webrtc::StatsReport& report) { 260 void AddReport(const webrtc::StatsReport& report) {
252 int idx = response_->addReport(blink::WebString::fromUTF8(report.id), 261 int idx = response_->addReport(blink::WebString::fromUTF8(report.id),
253 blink::WebString::fromUTF8(report.type), 262 blink::WebString::fromUTF8(report.type),
254 report.timestamp); 263 report.timestamp);
255 for (webrtc::StatsReport::Values::const_iterator value_it = 264 for (webrtc::StatsReport::Values::const_iterator value_it =
256 report.values.begin(); 265 report.values.begin();
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
861 webrtc::SessionDescriptionInterface* native_desc = 870 webrtc::SessionDescriptionInterface* native_desc =
862 dependency_factory_->CreateSessionDescription(type, sdp, error); 871 dependency_factory_->CreateSessionDescription(type, sdp, error);
863 872
864 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." 873 LOG_IF(ERROR, !native_desc) << "Failed to create native session description."
865 << " Type: " << type << " SDP: " << sdp; 874 << " Type: " << type << " SDP: " << sdp;
866 875
867 return native_desc; 876 return native_desc;
868 } 877 }
869 878
870 } // namespace content 879 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698