• vadimt's avatar
    Instrumenting most popular callbacks of HttpNetworkTransaction to locate the source of jankiness. · 29494d86
    vadimt authored
    Previous instrumentations showed that "DoCallback(rv);" call inside HttpNetworkTransaction::OnIOComplete
    alone is responsible for 18.2 janks per hour in IO thread. I need to instrument
    the code inside it to find out which part causes jank.
    
    This is a mechanical change that adds instrumentation required to locate the
    source of jankiness (i.e. a long-running fragment of code executed as a part of
    the task that causes jank) in the code. See the bug for details on what kind of
    jank we are after.
    A number of similar CLs were landed, and none of them caused issues. They've
    helped to find and fix janky code. The code of the instrumentation is highly
    optimized and is not expected to affect performance. The code simply creates a
    diagnostic task which is identical to ones created by PostTask or IPC message
    handlers. The task gets created only in developer build and in Canary channel.
    
    BUG=424359
    
    Review URL: https://codereview.chromium.org/670993003
    
    Cr-Commit-Position: refs/heads/master@{#302650}
    29494d86
url_request_http_job.cc 52.1 KB