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

Unified Diff: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc

Issue 215553002: Report some PNaCl UMA earlier, instead of in one chunk at the end. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
index 00322baa8d809260f4eea8fbae20057fff97ba65..40a2060c75e6e78c7c055bcb0af33482f0d4e26a 100644
--- a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
+++ b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
@@ -128,7 +128,7 @@ const int32_t kKBPSMax = 30*1000; // max of 30 MB / sec.
const uint32_t kKBPSBuckets = 100;
void HistogramTime(pp::UMAPrivate& uma,
- const std::string& name, int64_t ms) {
+ const nacl::string& name, int64_t ms) {
if (ms < 0) return;
uma.HistogramCustomTimes(name,
ms,
@@ -137,7 +137,7 @@ void HistogramTime(pp::UMAPrivate& uma,
}
void HistogramSizeKB(pp::UMAPrivate& uma,
- const std::string& name, int32_t kb) {
+ const nacl::string& name, int32_t kb) {
if (kb < 0) return;
uma.HistogramCustomCounts(name,
kb,
@@ -146,7 +146,7 @@ void HistogramSizeKB(pp::UMAPrivate& uma,
}
void HistogramRatio(pp::UMAPrivate& uma,
- const std::string& name, int64_t a, int64_t b) {
+ const nacl::string& name, int64_t a, int64_t b) {
if (a < 0 || b <= 0) return;
uma.HistogramCustomCounts(name,
100 * a / b,
@@ -155,7 +155,7 @@ void HistogramRatio(pp::UMAPrivate& uma,
}
void HistogramKBPerSec(pp::UMAPrivate& uma,
- const std::string& name, double kb, double s) {
+ const nacl::string& name, double kb, double s) {
if (kb < 0.0 || s <= 0.0) return;
uma.HistogramCustomCounts(name,
static_cast<int64_t>(kb / s),
@@ -339,20 +339,10 @@ void PnaclCoordinator::TranslateFinished(int32_t pp_error) {
// If there are no errors, report stats from this thread (the main thread).
HistogramOptLevel(plugin_->uma_interface(), pnacl_options_.opt_level());
- const plugin::PnaclTimeStats& time_stats = translate_thread_->GetTimeStats();
- HistogramTime(plugin_->uma_interface(),
- "NaCl.Perf.PNaClLoadTime.LoadCompiler",
- time_stats.pnacl_llc_load_time / NACL_MICROS_PER_MILLI);
- HistogramTime(plugin_->uma_interface(), "NaCl.Perf.PNaClLoadTime.CompileTime",
- time_stats.pnacl_compile_time / NACL_MICROS_PER_MILLI);
HistogramKBPerSec(plugin_->uma_interface(),
"NaCl.Perf.PNaClLoadTime.CompileKBPerSec",
pexe_size_ / 1024.0,
- time_stats.pnacl_compile_time / 1000000.0);
- HistogramTime(plugin_->uma_interface(), "NaCl.Perf.PNaClLoadTime.LoadLinker",
- time_stats.pnacl_ld_load_time / NACL_MICROS_PER_MILLI);
- HistogramTime(plugin_->uma_interface(), "NaCl.Perf.PNaClLoadTime.LinkTime",
- time_stats.pnacl_link_time / NACL_MICROS_PER_MILLI);
+ translate_thread_->GetCompileTime() / 1000000.0);
HistogramSizeKB(plugin_->uma_interface(), "NaCl.Perf.Size.Pexe",
static_cast<int64_t>(pexe_size_ / 1024));
@@ -621,6 +611,7 @@ StreamCallback PnaclCoordinator::GetCallback() {
void PnaclCoordinator::BitcodeGotCompiled(int32_t pp_error,
int64_t bytes_compiled) {
+ DCHECK(pp_error == PP_OK);
pexe_bytes_compiled_ += bytes_compiled;
// If we don't know the expected total yet, ask.
if (!ExpectedProgressKnown()) {
@@ -654,6 +645,21 @@ pp::CompletionCallback PnaclCoordinator::GetCompileProgressCallback(
bytes_compiled);
}
+void PnaclCoordinator::DoUMATimeMeasure(int32_t pp_error,
+ const nacl::string& event_name,
+ int64_t microsecs) {
+ DCHECK(pp_error == PP_OK);
+ HistogramTime(
+ plugin_->uma_interface(), event_name, microsecs / NACL_MICROS_PER_MILLI);
+}
+
+pp::CompletionCallback PnaclCoordinator::GetUMATimeCallback(
+ const nacl::string& event_name, int64_t microsecs) {
+ return callback_factory_.NewCallback(&PnaclCoordinator::DoUMATimeMeasure,
+ event_name,
+ microsecs);
+}
+
void PnaclCoordinator::GetCurrentProgress(int64_t* bytes_loaded,
int64_t* bytes_total) {
*bytes_loaded = pexe_bytes_compiled_;

Powered by Google App Engine
This is Rietveld 408576698