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

Unified Diff: tools/perf/measurements/oilpan_gc_times_unittest.py

Issue 968773002: [Oilpan] Measure time for forced/idle GC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a test Created 5 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: tools/perf/measurements/oilpan_gc_times_unittest.py
diff --git a/tools/perf/measurements/oilpan_gc_times_unittest.py b/tools/perf/measurements/oilpan_gc_times_unittest.py
index ae359758d27c9db6134da4adb7f6fb445c8732b5..1d20ec22b8462202476d3cfd0123f60baa118c2b 100644
--- a/tools/perf/measurements/oilpan_gc_times_unittest.py
+++ b/tools/perf/measurements/oilpan_gc_times_unittest.py
@@ -3,6 +3,7 @@
# found in the LICENSE file.
from measurements import oilpan_gc_times
+from telemetry.timeline.event import TimelineEvent
from telemetry.unittest_util import options_for_unittests
from telemetry.unittest_util import page_test_test_case
@@ -16,6 +17,71 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
def setUp(self):
self._options = options_for_unittests.GetCopy()
+ def testForParsing(self):
+ def getMetric(results, name):
+ metrics = results.FindAllPageSpecificValuesNamed(name)
+ self.assertEquals(1, len(metrics))
+ return metrics[0].GetBuildbotValue()
+
+ parser = oilpan_gc_times._OilpanGCTimesBase()
+ events = [TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': True, 'forced': False}),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
+ TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': True, 'forced': False}),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
+ TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': False, 'forced': False}),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 180, 11, 18),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
+ TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': True, 'forced': False}),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
+ TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': False, 'forced': True}),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18),
+ TimelineEvent('', 'Heap::collectGarbage', 0, 0, 11, 18,
+ {'precise': True, 'forced': True}),
+ TimelineEvent('', 'ThreadHeap::coalesce', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadHeap::lazySweepPages', 0, 0, 11, 18),
+ TimelineEvent('', 'ThreadState::completeSweep', 0, 0, 11, 18)]
+
+ results = parser._ParseEventsForTest(events, False, options=self._options)
+ self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
+ self.assertEquals(3, len(getMetric(results, 'oilpan_precise_mark')))
+ self.assertEquals(3, len(getMetric(results, 'oilpan_precise_lazy_sweep')))
+ self.assertEquals(3, len(getMetric(results,
+ 'oilpan_precise_complete_sweep')))
+ self.assertEquals(1, len(getMetric(results, 'oilpan_conservative_mark')))
+ self.assertEquals(1, len(getMetric(results,
+ 'oilpan_conservative_lazy_sweep')))
+ self.assertEquals(1, len(getMetric(results,
+ 'oilpan_conservative_complete_sweep')))
+
+ # Include forced GC events
+ results = parser._ParseEventsForTest(events, True, options=self._options)
+ self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
+ self.assertEquals(4, len(getMetric(results, 'oilpan_precise_mark')))
+ self.assertEquals(4, len(getMetric(results, 'oilpan_precise_lazy_sweep')))
+ self.assertEquals(4, len(getMetric(results,
+ 'oilpan_precise_complete_sweep')))
+ self.assertEquals(2, len(getMetric(results, 'oilpan_conservative_mark')))
+ self.assertEquals(2, len(getMetric(results,
+ 'oilpan_conservative_lazy_sweep')))
+ self.assertEquals(2, len(getMetric(results,
+ 'oilpan_conservative_complete_sweep')))
+
def testForSmoothness(self):
ps = self.CreatePageSetFromFileInUnittestDataDir('create_many_objects.html')
measurement = oilpan_gc_times.OilpanGCTimesForSmoothness()
« tools/perf/measurements/oilpan_gc_times.py ('K') | « tools/perf/measurements/oilpan_gc_times.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698