Skip to content

Commit

Permalink
Log thread and process CPU time
Browse files Browse the repository at this point in the history
  • Loading branch information
jellefoks committed Aug 16, 2024
1 parent a4aa9f5 commit 1febfcc
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions net/http/http_stream_factory_job_controller.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include "net/http/http_stream_factory_job_controller.h"

#include <pthread.h>
#include <string>
#include <utility>

Expand All @@ -23,6 +24,7 @@
#include "net/log/net_log_source.h"
#include "net/log/net_log_with_source.h"
#include "net/spdy/spdy_session.h"
#include "starboard/common/string.h"
#include "url/url_constants.h"

namespace net {
Expand Down Expand Up @@ -61,6 +63,25 @@ std::unique_ptr<base::Value> NetLogJobControllerCallback(
return std::move(dict);
}

namespace {
static clockid_t clockid = 0;
std::string print_clock(const char* msg, clockid_t cid) {
struct timespec ts;
if (clock_gettime(cid, &ts) != -1)
return starboard::FormatString(" %s %ld.%06ld", msg, ts.tv_sec,
ts.tv_nsec / 1000);
return std::string();
}

std::string print_clocks() {
if (clockid == 0) {
pthread_getcpuclockid(pthread_self(), &clockid);
}
return print_clock("thread", clockid) +
print_clock("process", CLOCK_PROCESS_CPUTIME_ID);
}
} // namespace

HttpStreamFactory::JobController::JobController(
HttpStreamFactory* factory,
HttpStreamRequest::Delegate* delegate,
Expand Down Expand Up @@ -256,9 +277,9 @@ void HttpStreamFactory::JobController::OnStreamReady(
DCHECK(stream);

{
const char* jobtypename[] = {"main", "alternative", "dns_alpn_h3", "preconnect",
"preconnect_dns_alpn_h3"};
LOG(INFO) << __FUNCTION__ << " negotiated_protocol = "
const char* jobtypename[] = {"main", "alternative", "dns_alpn_h3",
"preconnect", "preconnect_dns_alpn_h3"};
LOG(INFO) << __FUNCTION__ << print_clocks() << " negotiated_protocol = "
<< NextProtoToString(job->negotiated_protocol())
<< " was_alpn_negotiated=" << job->was_alpn_negotiated()
<< " using_spdy=" << job->using_spdy()
Expand Down Expand Up @@ -509,7 +530,6 @@ void HttpStreamFactory::JobController::OnNewSpdySessionReady(

// Notify |request_|.
if (!is_preconnect_ && !is_job_orphaned) {

DCHECK(request_);

// The first case is the usual case.
Expand Down

0 comments on commit 1febfcc

Please sign in to comment.