diff options
author | vadimt <vadimt@chromium.org> | 2014-12-30 14:17:47 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-30 22:18:35 +0000 |
commit | 6f25e7abcbb96a0c5eefae918f0302f7d89e21b0 (patch) | |
tree | 94d3891aaf90d4ca9af54b1b2db2f6cf6ae9c520 | |
parent | 7c9665ef172a0260ac0b06040a9459026121cdde (diff) | |
download | chromium_src-6f25e7abcbb96a0c5eefae918f0302f7d89e21b0.zip chromium_src-6f25e7abcbb96a0c5eefae918f0302f7d89e21b0.tar.gz chromium_src-6f25e7abcbb96a0c5eefae918f0302f7d89e21b0.tar.bz2 |
Instrumenting ReadRawData and InformDelegateDownloadProgress to find jank.
Prior instrumentations showed that:
ReadRawData = 16 jph
InformDelegateDownloadProgress = 4.8 jph
Instrumenting deeper.
The jank in InformDelegateDownloadProgress is a surprise since this method does nothing but posting a task. But still, who knows, and I'm instrumenting it too.
BUG=423948
TBR=jianli@chromium.org, jhawkins@chromium.org, zork@chromium.org, jochen@chromium.org, tzik@chromium.org
Review URL: https://codereview.chromium.org/821073003
Cr-Commit-Position: refs/heads/master@{#309783}
14 files changed, 92 insertions, 1 deletions
diff --git a/content/browser/appcache/appcache_url_request_job.cc b/content/browser/appcache/appcache_url_request_job.cc index 1f45d14..e253f4a 100644 --- a/content/browser/appcache/appcache_url_request_job.cc +++ b/content/browser/appcache/appcache_url_request_job.cc @@ -11,6 +11,7 @@ #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/message_loop/message_loop.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "content/browser/appcache/appcache.h" @@ -420,6 +421,11 @@ int AppCacheURLRequestJob::GetResponseCode() const { bool AppCacheURLRequestJob::ReadRawData(net::IOBuffer* buf, int buf_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 AppCacheURLRequestJob::ReadRawData")); + DCHECK(is_delivering_appcache_response()); DCHECK_NE(buf_size, 0); DCHECK(bytes_read); diff --git a/content/browser/service_worker/service_worker_read_from_cache_job.cc b/content/browser/service_worker/service_worker_read_from_cache_job.cc index 07f47e1..2c23de6 100644 --- a/content/browser/service_worker/service_worker_read_from_cache_job.cc +++ b/content/browser/service_worker/service_worker_read_from_cache_job.cc @@ -8,6 +8,7 @@ #include <vector> #include "base/debug/trace_event.h" +#include "base/profiler/scoped_tracker.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_disk_cache.h" #include "content/browser/service_worker/service_worker_metrics.h" @@ -121,6 +122,11 @@ bool ServiceWorkerReadFromCacheJob::ReadRawData( net::IOBuffer* buf, int buf_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 ServiceWorkerReadFromCacheJob::ReadRawData")); + DCHECK_NE(buf_size, 0); DCHECK(bytes_read); DCHECK(!reader_->IsReadPending()); diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc index e8c0b71..44762fa 100644 --- a/content/browser/service_worker/service_worker_url_request_job.cc +++ b/content/browser/service_worker/service_worker_url_request_job.cc @@ -150,6 +150,11 @@ void ServiceWorkerURLRequestJob::SetExtraRequestHeaders( bool ServiceWorkerURLRequestJob::ReadRawData( net::IOBuffer* buf, int buf_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 ServiceWorkerURLRequestJob::ReadRawData")); + DCHECK(buf); DCHECK_GE(buf_size, 0); DCHECK(bytes_read); diff --git a/content/browser/service_worker/service_worker_write_to_cache_job.cc b/content/browser/service_worker/service_worker_write_to_cache_job.cc index 5e9807b..0445ad0 100644 --- a/content/browser/service_worker/service_worker_write_to_cache_job.cc +++ b/content/browser/service_worker/service_worker_write_to_cache_job.cc @@ -124,6 +124,11 @@ bool ServiceWorkerWriteToCacheJob::ReadRawData( net::IOBuffer* buf, int buf_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 ServiceWorkerWriteToCacheJob::ReadRawData")); + net::URLRequestStatus status = ReadNetData(buf, buf_size, bytes_read); SetStatus(status); if (status.is_io_pending()) diff --git a/content/browser/streams/stream_url_request_job.cc b/content/browser/streams/stream_url_request_job.cc index 3d4ac7f..d526cb7 100644 --- a/content/browser/streams/stream_url_request_job.cc +++ b/content/browser/streams/stream_url_request_job.cc @@ -4,6 +4,7 @@ #include "content/browser/streams/stream_url_request_job.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/string_number_conversions.h" #include "content/browser/streams/stream.h" #include "net/base/io_buffer.h" @@ -94,6 +95,11 @@ void StreamURLRequestJob::Kill() { bool StreamURLRequestJob::ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 StreamURLRequestJob::ReadRawData")); + if (request_failed_) return true; diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc index 9e12864..409e6bd 100644 --- a/content/browser/webui/url_data_manager_backend.cc +++ b/content/browser/webui/url_data_manager_backend.cc @@ -17,6 +17,7 @@ #include "base/memory/ref_counted_memory.h" #include "base/memory/weak_ptr.h" #include "base/message_loop/message_loop.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "content/browser/appcache/view_appcache_internals_job.h" @@ -349,6 +350,11 @@ void URLRequestChromeJob::DataAvailable(base::RefCountedMemory* bytes) { bool URLRequestChromeJob::ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLRequestChromeJob::ReadRawData")); + if (!data_.get()) { SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0)); DCHECK(!pending_buf_.get()); diff --git a/net/url_request/url_fetcher_core.cc b/net/url_request/url_fetcher_core.cc index 420e831..c9f028f 100644 --- a/net/url_request/url_fetcher_core.cc +++ b/net/url_request/url_fetcher_core.cc @@ -931,7 +931,18 @@ void URLFetcherCore::InformDelegateUploadProgressInDelegateThread( } void URLFetcherCore::InformDelegateDownloadProgress() { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile1( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLFetcherCore::InformDelegateDownloadProgress1")); + DCHECK(network_task_runner_->BelongsToCurrentThread()); + + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile2( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLFetcherCore::InformDelegateDownloadProgress2")); + delegate_task_runner_->PostTask( FROM_HERE, base::Bind( diff --git a/net/url_request/url_request_file_dir_job.cc b/net/url_request/url_request_file_dir_job.cc index da586f3..d999c4f 100644 --- a/net/url_request/url_request_file_dir_job.cc +++ b/net/url_request/url_request_file_dir_job.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/compiler_specific.h" #include "base/message_loop/message_loop.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" @@ -67,6 +68,11 @@ void URLRequestFileDirJob::Kill() { bool URLRequestFileDirJob::ReadRawData(IOBuffer* buf, int buf_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLRequestFileDirJob::ReadRawData")); + DCHECK(bytes_read); *bytes_read = 0; diff --git a/net/url_request/url_request_file_job.cc b/net/url_request/url_request_file_job.cc index 7b3b195..5b01e50 100644 --- a/net/url_request/url_request_file_job.cc +++ b/net/url_request/url_request_file_job.cc @@ -87,6 +87,11 @@ void URLRequestFileJob::Kill() { bool URLRequestFileJob::ReadRawData(IOBuffer* dest, int dest_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLRequestFileJob::ReadRawData")); + DCHECK_NE(dest_size, 0); DCHECK(bytes_read); DCHECK_GE(remaining_bytes_, 0); diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc index 09c6f0f..d774714 100644 --- a/net/url_request/url_request_ftp_job.cc +++ b/net/url_request/url_request_ftp_job.cc @@ -6,6 +6,7 @@ #include "base/compiler_specific.h" #include "base/message_loop/message_loop.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/utf_string_conversions.h" #include "net/base/auth.h" #include "net/base/host_port_pair.h" @@ -349,6 +350,10 @@ UploadProgress URLRequestFtpJob::GetUploadProgress() const { bool URLRequestFtpJob::ReadRawData(IOBuffer* buf, int buf_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION("423948 URLRequestFtpJob::ReadRawData")); + DCHECK_NE(buf_size, 0); DCHECK(bytes_read); DCHECK(!read_in_progress_); diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc index acf1d07..8531dd3 100644 --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -1281,6 +1281,11 @@ bool URLRequestHttpJob::ShouldFixMismatchedContentLength(int rv) const { bool URLRequestHttpJob::ReadRawData(IOBuffer* buf, int buf_size, 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 URLRequestHttpJob::ReadRawData1")); + DCHECK_NE(buf_size, 0); DCHECK(bytes_read); DCHECK(!read_in_progress_); @@ -1294,8 +1299,15 @@ bool URLRequestHttpJob::ReadRawData(IOBuffer* buf, int buf_size, if (rv >= 0) { *bytes_read = rv; - if (!rv) + if (!rv) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is + // fixed. + tracked_objects::ScopedTracker tracking_profile2( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 URLRequestHttpJob::ReadRawData2")); + DoneWithRequest(FINISHED); + } return true; } diff --git a/storage/browser/blob/blob_url_request_job.cc b/storage/browser/blob/blob_url_request_job.cc index 507ade3..41e7942 100644 --- a/storage/browser/blob/blob_url_request_job.cc +++ b/storage/browser/blob/blob_url_request_job.cc @@ -17,6 +17,7 @@ #include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop_proxy.h" #include "base/numerics/safe_conversions.h" +#include "base/profiler/scoped_tracker.h" #include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" @@ -88,6 +89,11 @@ void BlobURLRequestJob::Kill() { bool BlobURLRequestJob::ReadRawData(net::IOBuffer* dest, int dest_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 BlobURLRequestJob::ReadRawData")); + DCHECK_NE(dest_size, 0); DCHECK(bytes_read); DCHECK_GE(remaining_bytes_, 0); diff --git a/storage/browser/fileapi/file_system_dir_url_request_job.cc b/storage/browser/fileapi/file_system_dir_url_request_job.cc index cce9c56..07b8f8d 100644 --- a/storage/browser/fileapi/file_system_dir_url_request_job.cc +++ b/storage/browser/fileapi/file_system_dir_url_request_job.cc @@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/compiler_specific.h" #include "base/message_loop/message_loop.h" +#include "base/profiler/scoped_tracker.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" @@ -47,6 +48,11 @@ FileSystemDirURLRequestJob::~FileSystemDirURLRequestJob() { bool FileSystemDirURLRequestJob::ReadRawData(net::IOBuffer* dest, int dest_size, int *bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 FileSystemDirURLRequestJob::ReadRawData")); + int count = std::min(dest_size, static_cast<int>(data_.size())); if (count > 0) { memcpy(dest->data(), data_.data(), count); diff --git a/storage/browser/fileapi/file_system_url_request_job.cc b/storage/browser/fileapi/file_system_url_request_job.cc index 8b2eae0..d2c242c 100644 --- a/storage/browser/fileapi/file_system_url_request_job.cc +++ b/storage/browser/fileapi/file_system_url_request_job.cc @@ -12,6 +12,7 @@ #include "base/files/file_util_proxy.h" #include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop_proxy.h" +#include "base/profiler/scoped_tracker.h" #include "base/threading/thread_restrictions.h" #include "base/time/time.h" #include "build/build_config.h" @@ -84,6 +85,11 @@ void FileSystemURLRequestJob::Kill() { bool FileSystemURLRequestJob::ReadRawData(net::IOBuffer* dest, int dest_size, int* bytes_read) { + // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. + tracked_objects::ScopedTracker tracking_profile( + FROM_HERE_WITH_EXPLICIT_FUNCTION( + "423948 FileSystemURLRequestJob::ReadRawData")); + DCHECK_NE(dest_size, 0); DCHECK(bytes_read); DCHECK_GE(remaining_bytes_, 0); |