Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Issue 2867303004: [histogram] Make histograms more resistant to overflows. (Closed)

Created:
3 years, 7 months ago by altimin
Modified:
3 years, 7 months ago
CC:
chromium-reviews, danakj+watch_chromium.org, asvitkine+watch_chromium.org, vmpstr+watch_chromium.org, Alexei Svitkine (slow), bcwhite, Steven Holte, skare_
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[histogram] Make histograms more resistant to overflows. Instead of calculating deltas from cumulative snapshots, store unlogged histogram samples in a separate HistogramSample object. This will reduce overflows from long-running sessions given that data between UMA pings fits into 32-bit integer. BUG=719446 Review-Url: https://codereview.chromium.org/2867303004 Cr-Commit-Position: refs/heads/master@{#471359} Committed: https://chromium.googlesource.com/chromium/src/+/498c838a685f07dda12f74620f9a13ae0cf62383

Patch Set 1 #

Total comments: 10

Patch Set 2 : addressed comments from isherman@ #

Total comments: 4

Patch Set 3 : addressed comments from bcwhite@ #

Total comments: 16

Patch Set 4 : addressed comments from isherman@ and asvitkine@ #

Patch Set 5 : fix unittest compilation #

Total comments: 5

Patch Set 6 : addressed comments #

Total comments: 1

Patch Set 7 : final fix #

Total comments: 6

Patch Set 8 : final final fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+119 lines, -59 lines) Patch
M base/metrics/histogram.h View 1 2 3 4 5 6 7 2 chunks +10 lines, -6 lines 0 comments Download
M base/metrics/histogram.cc View 1 2 3 4 5 6 7 8 chunks +38 lines, -31 lines 0 comments Download
M base/metrics/histogram_base.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M base/metrics/histogram_unittest.cc View 1 2 3 4 5 chunks +24 lines, -4 lines 0 comments Download
M base/metrics/sparse_histogram.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M base/metrics/sparse_histogram.cc View 1 2 3 7 chunks +16 lines, -17 lines 0 comments Download
M base/metrics/sparse_histogram_unittest.cc View 1 2 3 4 5 6 7 3 chunks +27 lines, -0 lines 0 comments Download

Messages

Total messages: 53 (35 generated)
altimin
PTAL
3 years, 7 months ago (2017-05-09 16:18:22 UTC) #4
Ilya Sherman
Thanks! I'm adding Alexei as a reviewer as well -- this code is subtle enough ...
3 years, 7 months ago (2017-05-09 22:15:32 UTC) #6
altimin
PTAL https://codereview.chromium.org/2867303004/diff/1/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/1/base/metrics/histogram.cc#newcode463 base/metrics/histogram.cc:463: logged_samples_->Add(*snapshot); On 2017/05/09 22:15:32, Ilya Sherman wrote: > ...
3 years, 7 months ago (2017-05-10 11:50:38 UTC) #11
bcwhite
Please do the same for SparseHistogram. https://codereview.chromium.org/2867303004/diff/20001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/20001/base/metrics/histogram.cc#newcode514 base/metrics/histogram.cc:514: logged_samples_.reset(new SampleVector(unlogged_samples_->id(), ranges)); ...
3 years, 7 months ago (2017-05-10 12:40:33 UTC) #15
altimin
PTAL. SparseHistogram is changed now too. https://codereview.chromium.org/2867303004/diff/20001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/20001/base/metrics/histogram.cc#newcode514 base/metrics/histogram.cc:514: logged_samples_.reset(new SampleVector(unlogged_samples_->id(), ranges)); ...
3 years, 7 months ago (2017-05-10 13:08:55 UTC) #16
Alexei Svitkine (slow)
https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc#newcode461 base/metrics/histogram.cc:461: unlogged_samples_->Subtract(*snapshot); So logic difference here was that before it ...
3 years, 7 months ago (2017-05-10 16:55:38 UTC) #21
Ilya Sherman
Thanks! LGTM % nits and other reviewer's comments. https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram_unittest.cc File base/metrics/histogram_unittest.cc (right): https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram_unittest.cc#newcode405 base/metrics/histogram_unittest.cc:405: // ...
3 years, 7 months ago (2017-05-11 00:42:35 UTC) #22
altimin
PTAL https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc#newcode461 base/metrics/histogram.cc:461: unlogged_samples_->Subtract(*snapshot); On 2017/05/10 16:55:38, Alexei Svitkine (slow) wrote: ...
3 years, 7 months ago (2017-05-11 12:38:33 UTC) #25
Alexei Svitkine (slow)
https://codereview.chromium.org/2867303004/diff/40001/base/metrics/sparse_histogram.cc File base/metrics/sparse_histogram.cc (right): https://codereview.chromium.org/2867303004/diff/40001/base/metrics/sparse_histogram.cc#newcode88 base/metrics/sparse_histogram.cc:88: return logged_samples_->id(); On 2017/05/11 12:38:33, altimin wrote: > On ...
3 years, 7 months ago (2017-05-11 13:54:35 UTC) #30
bcwhite
https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/40001/base/metrics/histogram.cc#newcode461 base/metrics/histogram.cc:461: unlogged_samples_->Subtract(*snapshot); > So logic difference here was that before ...
3 years, 7 months ago (2017-05-11 17:34:52 UTC) #33
altimin
PTAL https://codereview.chromium.org/2867303004/diff/80001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/80001/base/metrics/histogram.cc#newcode466 base/metrics/histogram.cc:466: // to be reported by the next call ...
3 years, 7 months ago (2017-05-11 17:55:44 UTC) #34
Alexei Svitkine (slow)
lgtm https://codereview.chromium.org/2867303004/diff/100001/base/metrics/sparse_histogram_unittest.cc File base/metrics/sparse_histogram_unittest.cc (right): https://codereview.chromium.org/2867303004/diff/100001/base/metrics/sparse_histogram_unittest.cc#newcode388 base/metrics/sparse_histogram_unittest.cc:388: const char* name = "TestName"; Nit: static const ...
3 years, 7 months ago (2017-05-11 18:21:50 UTC) #37
bcwhite
lgtm
3 years, 7 months ago (2017-05-11 19:33:06 UTC) #38
Ilya Sherman
Thanks! LGTM % comments on comments (and a nit): https://codereview.chromium.org/2867303004/diff/120001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/120001/base/metrics/histogram.cc#newcode468 base/metrics/histogram.cc:468: ...
3 years, 7 months ago (2017-05-11 19:57:41 UTC) #41
altimin
https://codereview.chromium.org/2867303004/diff/120001/base/metrics/histogram.cc File base/metrics/histogram.cc (right): https://codereview.chromium.org/2867303004/diff/120001/base/metrics/histogram.cc#newcode468 base/metrics/histogram.cc:468: // the next call to SnapshotDelta. On 2017/05/11 19:57:41, ...
3 years, 7 months ago (2017-05-11 20:41:40 UTC) #43
Ilya Sherman
LGTM, thanks.
3 years, 7 months ago (2017-05-11 21:54:55 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2867303004/140001
3 years, 7 months ago (2017-05-12 17:25:55 UTC) #50
commit-bot: I haz the power
3 years, 7 months ago (2017-05-12 17:49:44 UTC) #53
Message was sent while issue was closed.
Committed patchset #8 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/498c838a685f07dda12f74620f9a...

Powered by Google App Engine
This is Rietveld 408576698