• Nikolaos Papaspyrou's avatar
    [heap] Fix bug in efficiency and collection rate metrics · a44803dc
    Nikolaos Papaspyrou authored
    When calculating the GC collection rate, we assume that the start object
    size (before GC) is non zero. It appears that this is not always the
    case, not only because of tests that explicitly trigger GC, but also in
    Chrome, when the --gc-interval flag is used with a small interval value.
    
    Furthermore, efficiency calculation (freed bytes over GC duration)
    assumes that the duration of the GC is non zero. However, if the clock
    resolution is not small enough and the entire GC is very short, the
    timed value appears to be zero. This again leads to NaN values showing
    in metrics and CHECKs failing and has already been fixed for Oilpan
    (crrev.com/c/3723499).
    
    This CL fixes these two issues.
    
    Change-Id: I902b2e9740d9750a2b6463a00289625500c4c0d6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810393Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82205}
    a44803dc
gc-tracer.cc 71.8 KB