Commit Graph

43 Commits

Author SHA1 Message Date
Doug Thayer
297ca9d1d7 Bug 1397376 - Avoid copying on initializing histogram ranges r=gfritzsche
Since LinearHistogram and its descendants inherit ranges_ from
Histogram, and we wanted to replace the copying into a std::vec
for Histogram, the simplest approach seemed to just be to
precompute ranges for all histograms, exponential or otherwise.
This should have the added benefit of reducing the memory
footprint for those histograms, since they will benefit from the
deduplication work that the precomputing script already does.

MozReview-Commit-ID: JTV5Dej5ZIb
2017-09-08 12:13:44 -07:00
Doug Thayer
c5da070821 Bug 1397376 - Reduce size of gExponentialBucketLowerBoundIndex r=gfritzsche
This is a fairly small optimization - since the indices for this
array never exceed the size of an int16_t, let's just use that
instead to save a little bit of space.

MozReview-Commit-ID: 8bRokjlvZ9p
2017-09-07 10:23:52 -07:00
Doug Thayer
0a700ed576 Bug 1397376 - Deduplicate histogram static bucket data r=gfritzsche
Since we already have the indices array, we can just point duplicate
ranges at the first occurrence's index.

MozReview-Commit-ID: 3f5os1xSp89
2017-09-07 10:22:53 -07:00
Alessio Placitelli
5329b408e3 Bug 1343855 - Part 2 - Add support for key whitelists in keyed histograms. r=gfritzsche, data-review=francois
MozReview-Commit-ID: H2pE3VivWIX
2017-05-17 04:10:00 +02:00
Doug Thayer
b419dc7f86 Bug 1383210 - Use precomputed histogram buckets r=gfritzsche
The log and exp calls in base::Histogram::InitializeBucketRange()
were showing up in profiles. This patch uses the precomputed
buckets for exponential histograms instead of computing them at
runtime. Though linear histograms do show up in the profile that
prompted this change, they contribute much less, and due to the
trivial nature of generating these, it's unlikely that a static
cache would provide much if any speedup.

MozReview-Commit-ID: IavFwoWjFhk
2017-08-04 10:02:28 -07:00
Wes Kocher
5f9ee65672 Backed out changeset 277c7e4952a8 (bug 1383210) for flake8 failures a=backout
MozReview-Commit-ID: 3j1ROBxjf2Z
2017-08-08 12:38:41 -07:00
Doug Thayer
da71c2e874 Bug 1383210 - Use precomputed histogram buckets r=gfritzsche
The log and exp calls in base::Histogram::InitializeBucketRange()
were showing up in profiles. This patch uses the precomputed
buckets for exponential histograms instead of computing them at
runtime. Though linear histograms do show up in the profile that
prompted this change, they contribute much less, and due to the
trivial nature of generating these, it's unlikely that a static
cache would provide much if any speedup.

MozReview-Commit-ID: IavFwoWjFhk
2017-08-04 10:02:28 -07:00
Georg Fritzsche
ea803304a2 Bug 1366294 - Part 3 - Refactor TelemetryHistogram storage. r=chutten
Previously we used the base::StatisticsRecorder object for storage by name.
This is keyed by histogram name, which doesn't match our storage reality anymore.
Instead we use a name to refer to a set of histogram instances that record data from different processes, as well as separating session and subsession data.

In this re-write, we instead introduce the following lookup paths (managed in TelemetryHistogram.cpp):
- Main storage:
  - (histogramId, processId, sessionOrSubsession) -> Histogram*
  - (histogramId, processId) -> KeyedHistogram* (this handles subsessions internally)
- Lookup:
  - (histogramName) -> histogramId
  - (HistogramID) -> bool (is recording enabled for this histogram?)

This is wrapped with a few lookup functions.

This also allows us to keep HistogramIDs in the JS histogram instances now, instead of pointers to Histogram instances.
That means Histogram instance life-time management is now properly contained inside TelemetryHistogram.cpp.

MozReview-Commit-ID: 5yijGv7mc89
2017-07-24 09:52:26 -04:00
David Major
d6b44d8d1b Bug 1374419 - Make gHistograms constexpr to remove its initializer. r=gfritzsche 2017-06-20 11:39:20 -04:00
Andrew Halberstadt
bce781d9b8 Bug 1373294 - Fix E305 (two blank lines after method or class) in files enabled by flake8 linter, r=jmaher
This is needed before we can upgrade to flake8 3.3.0, as that version starts flagging these errors.

These files were modified by running:
autopep8 --select E305 --in-place -r <dir>

on the affected directories. I did it one dir at a time and verified the result after each.

MozReview-Commit-ID: FmlsfiKIbtr
2017-06-15 12:10:59 -04:00
Chris H-C
89b1d30556 Bug 1335343 - Prevent histogram recording in disallowed processes. r=Dexter
Unfortunately it means using FLAG histograms because I need to test that their
"we have a hidden default value" behaviour is appropriately silenced as well.

MozReview-Commit-ID: J8xGXwCTRIg
2017-06-13 07:10:00 -04:00
Avikalpa Kundu
c2cf02e97d Bug 1344834 - Enable flake8 rule E501: 'line too long (113 > 99 characters)'. r=Dexter 2017-05-03 06:38:00 +02:00
Georg Fritzsche
1fc17df501 Bug 1357001 - Part 5 - Fix linting errors. r=chutten 2017-04-21 15:48:44 +02:00
Georg Fritzsche
88054b0fc7 Bug 1357001 - Part 2 - Make histogram error message style more consistent. r=chutten 2017-04-18 18:22:43 +02:00
Georg Fritzsche
15fb79d095 Bug 1357001 - Part 1 - Unify validation errors in probe parsing scripts. r=chutten, f=gps 2017-04-18 18:21:36 +02:00
Federico Padua
7036c21f0b Bug 1344833 - Enable flake8 rule E128: "continuation line under-indented for visual indent". r=Dexter
This patch enables flake8 rule E128:
"continuation line under-indented for visual indent" in toolkit/components/telemetry
by removing the relative E128 entry from toolkit/components/telemetry/.flake8
and fixing the files for which the E128 error was reported.
Precisely 10 errors violating E128 rule were found and solved.

MozReview-Commit-ID: 4sNXIxGFJQN
2017-03-18 21:18:27 +01:00
Federico Padua
dc763e2594 Bug 1344832 - Enable flake8 rule E502: "the backslash is redundant between brackets". r+dexter r=Dexter
This patch enables flake8 rule E502:
"the backslash is redundant between brackets" in toolkit/components/telemetry
by removing the relative E502 entry from toolkit/components/telemetry/.flake8
and fixing the files for which the E502 error was reported.
Precisely 8 errors violating E502 rule were found and solved.

MozReview-Commit-ID: 1z8f3JjJ2gt
2017-03-14 01:04:56 +01:00
Paavini Nanda
9f5fb0a113 Bug 1344840 - Enable flake8 rule E231: "missing whitespace after ','". r=dexter 2017-03-14 00:37:32 +05:30
djmdev
b2b3c07918 Bug 1344846 - Enable flake8 rule E203: "whitespace before ':'". r=dexter
Removed whitespace present before : .
2017-03-10 04:16:14 +05:30
djmdev
2410c58bae Bug 1344718 - Enable flake8 rule E302: "expected 2 blank lines, found 1" for Telemetry code. r=Dexter 2017-03-08 22:41:00 +05:30
Georg Fritzsche
75a2db27c3 Bug 1188888 - Part 4 - Implement categorical histograms with JS API. r=chutten 2016-07-20 17:10:24 +02:00
Alessio Placitelli
4c826dcd18 Bug 1276190 - Add a script to generate headers with scalar data from Scalars.yaml. r=gfritzsche 2016-06-24 09:14:00 +02:00
Julian Seward
64b3a1608f Bug 1261052 - Move C++ histogram implementation code into a separate module. r=gfritzsche. 2016-05-17 15:05:19 +02:00
Carsten "Tomcat" Book
7efeacf304 Backed out changeset 6bf8922cd1b7 (bug 1261052) for windows pgo bustage 2016-05-13 14:26:12 +02:00
Julian Seward
57ccf65321 Bug 1261052 - Move C++ histogram implementation code into a separate module. r=gfritzsche. 2016-05-13 11:29:49 +02:00
Anup Kumar
af825059ba Bug 1201492 - Remove extended_statistics_ok from Telemetry histograms. r=dexter 2015-12-21 08:31:00 +01:00
Nathan Froyd
bcf017e50a Bug 1170691 - part 2 - use GENERATED_FILES in toolkit/components/telemetry/; r=glandium 2015-06-02 14:46:19 -04:00
Nathan Froyd
a088ae0bef Bug 968923 - part 1 - add infrastructure for defining use counters from UseCounters.conf; original-author=heycam; r=heycam,gfritzsche,mshal
This patch adds UseCounter.conf for defining use counters along with
infrastructure to generate enums and telemetry identifiers from
UseCounter.conf.
2015-02-04 17:00:00 -05:00
Georg Fritzsche
18530f552d Bug 1120369 - Allow specifying the desired dataset in Histograms.json. r=vladan 2015-01-29 15:17:24 +01:00
Georg Fritzsche
0fd9b006e5 Bug 1069874 - Add keyed histogram types. r=froydnj 2014-10-30 20:51:01 +01:00
Georg Fritzsche
e75bffb6b2 Bug 1069873 - Add counter histogram type. r=froydnj 2014-09-26 17:45:33 +02:00
Roberto A. Vitillo
e6520ed502 Bug 742500 - Disable expired telemetry probes. r=vladan 2014-01-03 12:02:48 -05:00
Ryan VanderMeulen
2fbd8e3fa4 Backed out changeset 70fd824abff0 (bug 742500) for xpcshell orange. 2014-01-03 11:31:17 -05:00
Roberto A. Vitillo
0d81111f50 Bug 742500 - Disable expired telemetry probes. r=vladan 2014-01-03 09:28:07 -05:00
Nathan Froyd
8fdd5ae717 Bug 932285 - part 3 - don't export comments to telemetry's string table; r=vladan 2013-12-06 15:18:48 -05:00
David Rajchenbach-Teller
535f2c27f9 Bug 932281 - Extend TelemetryHistogram.{id_offset, comment_offset} to uint32_t. r=froydnj 2013-11-06 09:02:29 -05:00
Ehsan Akhgari
763e77d404 Bug 895322 - Part 2: Stop generating MOZ_STATIC_ASSERT in the telemetry code; r=Waldo 2013-07-18 14:32:52 -04:00
Nathan Froyd
e99018d644 Bug 837271 - part 2 - add extended_statistics_ok mechanism to histogram machinery; r=vladan 2013-02-13 10:51:24 -05:00
Nathan Froyd
5535bf4664 Bug 748444 - eliminate relocations from histogram data; r=taras 2012-08-28 12:55:32 -04:00
Nathan Froyd
a4d4d5bb88 Bug 764585 - make enumerated histograms harder to get wrong; r=taras 2012-08-28 13:21:56 -04:00
Nathan Froyd
b282ce8d36 Bug 748417 - double-check Python-generated range-information; r=taras 2012-08-27 16:47:32 -04:00
Nathan Froyd
ff0163407c Bug 748417 - provide a proper Histogram class; r=taras 2012-08-23 16:32:34 -04:00
Nathan Froyd
5a5bd24258 Bug 781531 - generate histogram information from JSON; r=taras 2012-08-24 15:54:55 -04:00