Skip to content

Commit

Permalink
Adding more instrumentations to find jankiness.
Browse files Browse the repository at this point in the history
Prior instrumentations showed that most of jank happens in:
* "StartReading(false);  // Read the first chunk." line in ResourceLoader::OnResponseStarted: 17.6 jph
* URLFetcherCore::OnReadCompleted: 6.15 jph
but outside of other instrumentations.

Instrumenting their not yet instrumented internals.

BUG=423948

Review URL: https://codereview.chromium.org/774513002

Cr-Commit-Position: refs/heads/master@{#306343}
  • Loading branch information
vadimt authored and Commit bot committed Dec 2, 2014
1 parent 688d454 commit 394300b
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 2 deletions.
12 changes: 10 additions & 2 deletions content/browser/loader/resource_loader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,10 @@ void ResourceLoader::CompleteResponseStarted() {
}

void ResourceLoader::StartReading(bool is_continuation) {
// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile(
FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 ResourceLoader::StartReading"));

int bytes_read = 0;
ReadMore(&bytes_read);

Expand Down Expand Up @@ -680,6 +684,10 @@ void ResourceLoader::ResumeReading() {
}

void ResourceLoader::ReadMore(int* bytes_read) {
// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile1(
FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 ResourceLoader::ReadMore1"));

DCHECK(!is_deferred());

// Make sure we track the buffer in at least one place. This ensures it gets
Expand All @@ -689,8 +697,8 @@ void ResourceLoader::ReadMore(int* bytes_read) {
int buf_size;
{
// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile(
FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 ResourceLoader::ReadMore"));
tracked_objects::ScopedTracker tracking_profile2(
FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 ResourceLoader::ReadMore2"));

if (!handler_->OnWillRead(&buf, &buf_size, -1)) {
Cancel();
Expand Down
41 changes: 41 additions & 0 deletions net/url_request/url_fetcher_core.cc
Original file line number Diff line number Diff line change
Expand Up @@ -436,16 +436,36 @@ void URLFetcherCore::OnReadCompleted(URLRequest* request,
URLRequestThrottlerManager* throttler_manager =
request->context()->throttler_manager();
if (throttler_manager) {
// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile1(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted1"));

url_throttler_entry_ = throttler_manager->RegisterRequestUrl(url_);
}

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile2(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted2"));

do {
if (!request_->status().is_success() || bytes_read <= 0)
break;

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile3(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted3"));

current_response_bytes_ += bytes_read;
InformDelegateDownloadProgress();

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile4(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted4"));

const int result =
WriteBuffer(new DrainableIOBuffer(buffer_.get(), bytes_read));
if (result < 0) {
Expand All @@ -456,17 +476,38 @@ void URLFetcherCore::OnReadCompleted(URLRequest* request,

const URLRequestStatus status = request_->status();

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile5(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted5"));

if (status.is_success())
request_->GetResponseCookies(&cookies_);

// See comments re: HEAD requests in ReadResponse().
if (!status.is_io_pending() || request_type_ == URLFetcher::HEAD) {
// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile6(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted6"));

status_ = status;
ReleaseRequest();

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile7(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted7"));

// No more data to write.
const int result = response_writer_->Finish(
base::Bind(&URLFetcherCore::DidFinishWriting, this));

// TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed.
tracked_objects::ScopedTracker tracking_profile8(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"423948 URLFetcherCore::OnReadCompleted8"));

if (result != ERR_IO_PENDING)
DidFinishWriting(result);
}
Expand Down

0 comments on commit 394300b

Please sign in to comment.