Commit 90c6cd6f authored by Brian Sheedy's avatar Brian Sheedy Committed by Commit Bot

Switch blink_heap_unittests to histograms

Switches uses of PrintResult in blink_heap_unittests to
PerfResultReporter and whitelists it for conversion to histograms
before being uploaded to the perf dashboard.

Bug: 923564
Change-Id: I5278ed703b2644eac7fbe7b547ed8dcc94eb8e8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2095926Reviewed-by: default avatarCaleb Rouleau <crouleau@chromium.org>
Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749349}
parent e161b5e9
......@@ -93,6 +93,7 @@ SHARD_MAPS_DIRECTORY = os.path.join(
GTEST_CONVERSION_WHITELIST = [
'angle_perftests',
'base_perftests',
'blink_heap_unittests',
'blink_platform_perftests',
'cc_perftests',
'components_perftests',
......
......@@ -14,7 +14,7 @@ include_rules = [
"+base/task_runner.h",
"+base/task/post_job.h",
"+base/template_util.h",
"+testing/perf/perf_test.h",
"+testing/perf/perf_result_reporter.h",
"+third_party/blink/renderer/platform/bindings",
"+third_party/blink/renderer/platform/instrumentation/histogram.h",
......
......@@ -4,7 +4,7 @@
#include "base/callback.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/perf/perf_test.h"
#include "testing/perf/perf_result_reporter.h"
#include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
#include "third_party/blink/renderer/platform/heap/persistent.h"
......@@ -14,6 +14,21 @@ class WriteBarrierPerfTest : public TestSupportingGC {};
namespace {
constexpr char kMetricPrefixWriteBarrier[] = "WriteBarrier.";
constexpr char kMetricWritesDuringGcRunsPerS[] = "writes_during_gc";
constexpr char kMetricWritesOutsideGcRunsPerS[] = "writes_outside_gc";
constexpr char kMetricRelativeSpeedDifferenceUnitless[] =
"relative_speed_difference";
perf_test::PerfResultReporter SetUpReporter(const std::string& story_name) {
perf_test::PerfResultReporter reporter(kMetricPrefixWriteBarrier, story_name);
reporter.RegisterImportantMetric(kMetricWritesDuringGcRunsPerS, "runs/s");
reporter.RegisterImportantMetric(kMetricWritesOutsideGcRunsPerS, "runs/s");
reporter.RegisterImportantMetric(kMetricRelativeSpeedDifferenceUnitless,
"unitless");
return reporter;
}
class PerfDummyObject : public GarbageCollected<PerfDummyObject> {
public:
PerfDummyObject() = default;
......@@ -61,19 +76,16 @@ TEST_F(WriteBarrierPerfTest, MemberWritePerformance) {
PreciselyCollectGarbage();
// Reporting.
perf_test::PrintResult(
"WriteBarrierPerfTest", " writes during GC", "",
static_cast<double>(kNumElements) / during_gc_duration.InMillisecondsF(),
"writes/ms", true);
perf_test::PrintResult(
"WriteBarrierPerfTest", " writes outside GC", "",
static_cast<double>(kNumElements) / outside_gc_duration.InMillisecondsF(),
"writes/ms", true);
perf_test::PrintResult("WriteBarrierPerfTest", " relative speed difference",
"",
during_gc_duration.InMillisecondsF() /
outside_gc_duration.InMillisecondsF(),
"times", true);
auto reporter = SetUpReporter("member_write_performance");
reporter.AddResult(
kMetricWritesDuringGcRunsPerS,
static_cast<double>(kNumElements) / during_gc_duration.InSecondsF());
reporter.AddResult(
kMetricWritesOutsideGcRunsPerS,
static_cast<double>(kNumElements) / outside_gc_duration.InSecondsF());
reporter.AddResult(
kMetricRelativeSpeedDifferenceUnitless,
during_gc_duration.InSecondsF() / outside_gc_duration.InSecondsF());
}
} // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment