• Xi Cheng's avatar
    Directly write SampledProfile protocol buffer message and send over mojo · 4dec7e4b
    Xi Cheng authored
    This change removes the current execution profile _mojo_ representation
    in favor of directly writing the data in the protocol buffer format used
    for UMA upload. The reasons for using this format are:
    1. it's the format that we ultimately need the data in;
    2. it's the most memory-efficient representation available to us, because
       of the protocol buffer varint encoding;
    3. the serialized protocol buffers are trivially compressible.
    
    We generate execution profiles in non-browser processes, so this means
    writing the protocol buffer representation in those processes and sending
    over mojo to the browser process, where the UMA upload takes place.
    
    We're making this change as part of a refactoring to expand the profiling
    scenarios supported by the UMA Sampling Profiler. A key aspect of this
    refactoring is reducing memory consumption of the execution profile
    representation. See http://crbug.com/850148 for examples of memory usage
    problems with this representation.
    
    Bug: 851163, 804942
    Change-Id: Ied88d6fd932587707c1f5a4c79acd77d5911f6ee
    Reviewed-on: https://chromium-review.googlesource.com/1157547
    Commit-Queue: Mike Wittman <wittman@chromium.org>
    Reviewed-by: default avatarSteven Holte <holte@chromium.org>
    Reviewed-by: default avatarMike Wittman <wittman@chromium.org>
    Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
    Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#582209}
    4dec7e4b
child_call_stack_profile_collector.cc 3.6 KB