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( ...@@ -93,6 +93,7 @@ SHARD_MAPS_DIRECTORY = os.path.join(
GTEST_CONVERSION_WHITELIST = [ GTEST_CONVERSION_WHITELIST = [
'angle_perftests', 'angle_perftests',
'base_perftests', 'base_perftests',
'blink_heap_unittests',
'blink_platform_perftests', 'blink_platform_perftests',
'cc_perftests', 'cc_perftests',
'components_perftests', 'components_perftests',
......
...@@ -14,7 +14,7 @@ include_rules = [ ...@@ -14,7 +14,7 @@ include_rules = [
"+base/task_runner.h", "+base/task_runner.h",
"+base/task/post_job.h", "+base/task/post_job.h",
"+base/template_util.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/bindings",
"+third_party/blink/renderer/platform/instrumentation/histogram.h", "+third_party/blink/renderer/platform/instrumentation/histogram.h",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "testing/gtest/include/gtest/gtest.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/heap_test_utilities.h"
#include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/heap/persistent.h"
...@@ -14,6 +14,21 @@ class WriteBarrierPerfTest : public TestSupportingGC {}; ...@@ -14,6 +14,21 @@ class WriteBarrierPerfTest : public TestSupportingGC {};
namespace { 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> { class PerfDummyObject : public GarbageCollected<PerfDummyObject> {
public: public:
PerfDummyObject() = default; PerfDummyObject() = default;
...@@ -61,19 +76,16 @@ TEST_F(WriteBarrierPerfTest, MemberWritePerformance) { ...@@ -61,19 +76,16 @@ TEST_F(WriteBarrierPerfTest, MemberWritePerformance) {
PreciselyCollectGarbage(); PreciselyCollectGarbage();
// Reporting. // Reporting.
perf_test::PrintResult( auto reporter = SetUpReporter("member_write_performance");
"WriteBarrierPerfTest", " writes during GC", "", reporter.AddResult(
static_cast<double>(kNumElements) / during_gc_duration.InMillisecondsF(), kMetricWritesDuringGcRunsPerS,
"writes/ms", true); static_cast<double>(kNumElements) / during_gc_duration.InSecondsF());
perf_test::PrintResult( reporter.AddResult(
"WriteBarrierPerfTest", " writes outside GC", "", kMetricWritesOutsideGcRunsPerS,
static_cast<double>(kNumElements) / outside_gc_duration.InMillisecondsF(), static_cast<double>(kNumElements) / outside_gc_duration.InSecondsF());
"writes/ms", true); reporter.AddResult(
perf_test::PrintResult("WriteBarrierPerfTest", " relative speed difference", kMetricRelativeSpeedDifferenceUnitless,
"", during_gc_duration.InSecondsF() / outside_gc_duration.InSecondsF());
during_gc_duration.InMillisecondsF() /
outside_gc_duration.InMillisecondsF(),
"times", true);
} }
} // namespace blink } // 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