summaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorqyearsley@chromium.org <qyearsley@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-03 20:29:15 +0000
committerqyearsley@chromium.org <qyearsley@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-03 20:29:15 +0000
commitb73026ce127ab0e23c27f260267379c8cab9479c (patch)
treec4bd5ee28df4e2c508392bf0582c83655cc51605 /tools/perf
parentd6efc94e0ea08baea13b88dbf9ed261b5840e46c (diff)
downloadchromium_src-b73026ce127ab0e23c27f260267379c8cab9479c.zip
chromium_src-b73026ce127ab0e23c27f260267379c8cab9479c.tar.gz
chromium_src-b73026ce127ab0e23c27f260267379c8cab9479c.tar.bz2
Change speed index to behave like WPT, improve speed index unit test
BUG= Review URL: https://chromiumcodereview.appspot.com/23839002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221014 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/metrics/speedindex.py224
-rw-r--r--tools/perf/metrics/speedindex_unittest.py230
-rw-r--r--tools/perf/metrics/unittest_data/2ch_repeat_timeline.json1
-rw-r--r--tools/perf/metrics/unittest_data/baidu_repeat_timeline.json1
-rw-r--r--tools/perf/metrics/unittest_data/cern_repeat_timeline.json1
-rw-r--r--tools/perf/metrics/unittest_data/sample_timeline.json81
6 files changed, 287 insertions, 251 deletions
diff --git a/tools/perf/metrics/speedindex.py b/tools/perf/metrics/speedindex.py
index 8995114..e9eb8f7 100644
--- a/tools/perf/metrics/speedindex.py
+++ b/tools/perf/metrics/speedindex.py
@@ -10,13 +10,13 @@ from metrics import Metric
class SpeedIndexMetric(Metric):
"""The speed index metric is one way of measuring page load speed.
- It is meant to approximate user perception of page load speed --
- it's based on the amount of time that it takes to paint to the visual
- portion of the screen -- it includes paint events done after the load
- event, and it doesn't include time loading things off-screen
+ It is meant to approximate user perception of page load speed, and it
+ is based on the amount of time that it takes to paint to the visual
+ portion of the screen. It includes paint events that occur after the
+ onload event, and it doesn't include time loading things off-screen.
- This speed index metric is based on the one in WebPagetest:
- http://goo.gl/e7AH5l
+ This speed index metric is based on the devtools speed index at
+ WebPageTest.org (WPT). For more info see: http://goo.gl/e7AH5l
"""
def __init__(self):
super(SpeedIndexMetric, self).__init__()
@@ -42,7 +42,6 @@ class SpeedIndexMetric(Metric):
def AddResults(self, tab, results):
"""Calculate the speed index and add it to the results."""
events = tab.timeline_model.GetAllEvents()
- assert len(events) > 0
results.Add('speed_index', 'ms', _SpeedIndex(events))
def IsFinished(self, tab):
@@ -85,103 +84,117 @@ class SpeedIndexMetric(Metric):
def _SpeedIndex(events):
"""Calculate the speed index of a page load from a list of events.
+ The speed index number conceptually represents the number of milliseconds
+ that the page was "visually incomplete". If the page were 0% complete for
+ 1000 ms, then the score would be 1000; if it were 0% complete for 100 ms
+ then 90% complete (ie 10% incomplete) for 900 ms, then the score would be
+ 1.0*100 + 0.1*900 = 190.
+
Args:
- events: A flat list of telemetry.core.timeline.slice.Slice objects
- as returned by telemetry.core.timeline.model.GetAllEvents().
+ events: A list of telemetry.core.timeline.slice.Slice objects
Returns:
- A single integer which represents the total time in milliseconds
- that the page was "visually incomplete". If the page were 100% incomplete
- (i.e. nothing painted) for 1000 ms, then the score would be 1000; if it
- were empty for 100 ms, then 90% complete (10% incomplete) for 900 ms, then
- the score would be 100 + 0.1*900 = 190.
+ A single number, milliseconds of visual incompleteness.
"""
- paint_events = _GetPaintEvents(events)
- time_area_pairs = _GetTimeAreaPairs(paint_events)
- time_completeness_pairs = _GetTimeCompletenessPairs(time_area_pairs)
- speed_index = 0
- prev_time = _StartTime(events)
- completeness = 0.0
- for this_time, this_completeness in time_completeness_pairs:
- # Add the value for the time interval up to this event
- time_interval = this_time - prev_time
- speed_index += time_interval * (1 - completeness)
-
- # Update variables for next iteration
- completeness = this_completeness
- prev_time = this_time
- return speed_index
-
-
-def _GetPaintEvents(timeline_events):
- """Get the paint events in the time range relevant to the speed index."""
- start = _StartTime(timeline_events)
- return [event for event in timeline_events
- if event.name == 'Paint' and event.start >= start]
+ paint_events = _IncludedPaintEvents(events)
+ time_area_dict = _TimeAreaDict(paint_events)
+ time_completeness_dict = _TimeCompletenessDict(time_area_dict)
+ # The first time interval starts from the start of the first event.
+ prev_time = events[0].start
+ prev_completeness = 0.0
+ speed_index = 0.0
+ for time, completeness in sorted(time_completeness_dict.items()):
+ # Add the incemental value for the interval just before this event.
+ elapsed_time = time - prev_time
+ incompleteness = (1.0 - prev_completeness)
+ speed_index += elapsed_time * incompleteness
+
+ # Update variables for next iteration.
+ prev_completeness = completeness
+ prev_time = time
+ return speed_index
-def _StartTime(timeline_events):
- """Get the time of the earliest Paint event that should be considered.
- Before there are any ResourceReceiveResponse or Layout events,
- there may be Paint events. These paint events probably should be ignored,
- because they probably aren't actual elements of the page being displayed.
+def _TimeCompletenessDict(time_area_dict):
+ """Make a dictionary of time to visual completeness.
- Returns:
- If there's a ResourceReceiveResponse event then a Layout event, return the
- start time of the Layout event. Otherwise, return the time of the start
- of the first event.
+ In the WPT PHP implementation, this is also called 'visual progress'.
"""
- has_received_response = False
- assert len(timeline_events) > 0
- for event in timeline_events:
- if event.name == "ResourceReceiveResponse":
- has_received_response = True
- elif has_received_response and event.name == "Layout":
- return event.start
- return timeline_events[0].start
+ total_area = sum(time_area_dict.values())
+ assert total_area > 0.0, 'Total paint event area must be greater than 0.'
+ completeness = 0.0
+ time_completeness_dict = {}
+ for time, area in sorted(time_area_dict.items()):
+ completeness += float(area) / total_area
+ # Visual progress is rounded to the nearest percentage point as in WPT.
+ time_completeness_dict[time] = round(completeness, 2)
+ return time_completeness_dict
+
+def _IncludedPaintEvents(events):
+ """Get all events that are counted in the calculation of the speed index.
-def _GetTimeAreaPairs(paint_events):
- """Make a list of pairs associating event time and adjusted area value.
+ There's one category of paint event that's filtered out: paint events
+ that occur before the first 'ResourceReceiveResponse' and 'Layout' events.
- The area value of a paint event is determined by how many paint events paint
- the same rectangle, and whether it is painting full window.
+ Previously in the WPT speed index, paint events that contain children paint
+ events were also filtered out.
+ """
+ def FirstLayoutTime(events):
+ """Get the start time of the first layout after a resource received."""
+ has_received_response = False
+ for event in events:
+ if event.name == 'ResourceReceiveResponse':
+ has_received_response = True
+ elif has_received_response and event.name == 'Layout':
+ return event.start
+ assert False, 'There were no layout events after resource receive events.'
+
+ paint_events = [e for e in events
+ if e.start >= FirstLayoutTime(events) and e.name == 'Paint']
+ return paint_events
+
+
+def _TimeAreaDict(paint_events):
+ """Make a dict from time to adjusted area value for events at that time.
+
+ The adjusted area value of each paint event is determined by how many paint
+ events cover the same rectangle, and whether it's a full-window paint event.
+ "Adjusted area" can also be thought of as "points" of visual completeness --
+ each rectangle has a certain number of points and these points are
+ distributed amongst the paint events that paint that rectangle.
Args:
- paint_events: A list of Paint events
+ paint_events: A list of paint events
Returns:
- A list of pairs of the time of each paint event (in milliseconds) and the
+ A dictionary of times of each paint event (in milliseconds) to the
adjusted area that the paint event is worth.
"""
- def _RectangleArea(rectangle):
- return rectangle[3] * rectangle[4]
grouped = _GroupEventByRectangle(paint_events)
+ # Note: It is assumed here that the fullscreen area is considered to be
+ # area of the largest paint event that has NOT been filtered out.
fullscreen_area = max([_RectangleArea(rect) for rect in grouped.keys()])
- event_area_pairs = []
+ event_area_dict = collections.defaultdict(int)
+
for rectangle in grouped:
+ # The area points for each rectangle are divided up among the paint
+ # events in that rectangle.
area = _RectangleArea(rectangle)
- # Paint events that are considered "full-screen" paint events
- # are discounted because they're often just painting a white background.
- # They are not completely disregarded though, because if we're painting
- # a colored background, it should be counted.
- if _RectangleArea(rectangle) == fullscreen_area:
- area /= 2
- area_per_event = area / len(grouped[rectangle])
- for event in grouped[rectangle]:
- end_time = event.end
- event_area_pairs.append((end_time, area_per_event))
- return event_area_pairs
+ update_count = len(grouped[rectangle])
+ adjusted_area = float(area) / update_count
+ # Paint events for the largest-area rectangle are counted as 50%.
+ if area == fullscreen_area:
+ adjusted_area /= 2
-def _GroupEventByRectangle(paint_events):
- """Group all paint events according to the rectangle that they update."""
- result = collections.defaultdict(list)
- for event in paint_events:
- assert event.name == 'Paint'
- result[_GetRectangle(event)].append(event)
- return result
+ for event in grouped[rectangle]:
+ # The end time for an event is used for that event's time.
+ event_time = event.end
+ event_area_dict[event_time] += adjusted_area
+
+ return event_area_dict
def _GetRectangle(paint_event):
@@ -189,37 +202,36 @@ def _GetRectangle(paint_event):
Each paint event belongs to a frame (as in html <frame> or <iframe>).
This, together with location and dimensions, comprises a rectangle.
+ In the WPT source, this 'rectangle' is also called a 'region'.
"""
+ def GetBox(quad):
+ """Convert the "clip" data in a paint event to coordinates and dimensions.
+
+ In the timeline data from devtools, paint rectangle dimensions are
+ represented x-y coordinates of four corners, clockwise from the top-left.
+ See: function WebInspector.TimelinePresentationModel.quadFromRectData
+ in file src/out/Debug/obj/gen/devtools/TimelinePanel.js.
+ """
+ x0, y0, _, _, x1, y1, _, _ = quad
+ width, height = (x1 - x0), (y1 - y0)
+ return (x0, y0, width, height)
+
assert paint_event.name == 'Paint'
frame = paint_event.args['frameId']
- x, y, width, height = _GetBox(paint_event.args['data']['clip'])
+ x, y, width, height = GetBox(paint_event.args['data']['clip'])
return (frame, x, y, width, height)
-def _GetBox(quad):
- """Convert the "clip" data in a paint event to coordinates and dimensions.
-
- In the timeline data from devtools, paint rectangle dimensions are
- represented x-y coordinates of four corners, clockwise from the top-left.
- See: function WebInspector.TimelinePresentationModel.quadFromRectData
- in file src/out/Debug/obj/gen/devtools/TimelinePanel.js.
- """
- x0, y0, _, _, x1, y1, _, _ = quad
- width, height = (x1 - x0), (y1 - y0)
- return (x0, y0, width, height)
-
-
-def _GetTimeCompletenessPairs(time_area_pairs):
- """Make a list associating time with the % completeness at that time.
+def _RectangleArea(rectangle):
+ """Get the area of a rectangle as returned by _GetRectangle, above."""
+ # Width and height are the last two items in the 5-tuple.
+ return rectangle[3] * rectangle[4]
- The list returned will also be ordered by time.
- """
- total_area = float(sum([area for (_, area) in time_area_pairs]))
- time_completeness_pairs = []
- completeness = 0
- for event_time, area in sorted(time_area_pairs):
- completeness_impact = float(area) / total_area
- completeness += completeness_impact
- time_completeness_pairs.append((event_time, completeness))
- return time_completeness_pairs
+def _GroupEventByRectangle(paint_events):
+ """Group all paint events according to the rectangle that they update."""
+ result = collections.defaultdict(list)
+ for event in paint_events:
+ assert event.name == 'Paint'
+ result[_GetRectangle(event)].append(event)
+ return result
diff --git a/tools/perf/metrics/speedindex_unittest.py b/tools/perf/metrics/speedindex_unittest.py
index f306f61..f4a62ca 100644
--- a/tools/perf/metrics/speedindex_unittest.py
+++ b/tools/perf/metrics/speedindex_unittest.py
@@ -2,156 +2,96 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+# These tests access private methods in the speedindex module.
+# pylint: disable=W0212
+
+import json
+import os
import unittest
from telemetry.core.timeline import model
from metrics import speedindex
-# pylint: disable=W0212
-# (Disabled because these tests test private methods in speed_index_metric)
-
-_RAW_EVENTS = [
- { "type": "Paint",
- "startTime": 100,
- "endTime": 110,
- "frameId": "1.1",
- "data": {"clip": [0, 0, 1000, 0, 1000, 500, 0, 500]},
- "children": [],
- },
- { "type": "ResourceReceiveResponse",
- "startTime": 120,
- "endTime": 130,
- "frameId": "1.1",
- "data": {},
- "children": [],
- },
- { "type": "Layout",
- "startTime": 140,
- "endTime": 150,
- "frameId": "1.1",
- "data": {},
- "children": [],
- },
- { "type": "Paint",
- "startTime": 300,
- "endTime": 400,
- "frameId": "1.1",
- "data": {"clip": [375, 300, 380, 300, 380, 400, 375, 400]},
- "children": [],
- },
- { "type": "Paint",
- "startTime": 400,
- "endTime": 500,
- "frameId": "1.1",
- "data": {"clip": [0, 0, 500, 0, 500, 100, 0, 100]},
- "children": [],
- }
-]
-
-_RAW_EVENTS_SAME_RECTANGLE = [
- { "type": "Paint",
- "startTime": 0,
- "endTime": 100,
- "frameId": "1.1",
- "data": {"clip": [0, 0, 500, 0, 500, 100, 0, 100]},
- "children": [],
- },
- { "type": "Paint",
- "startTime": 400,
- "endTime": 500,
- "frameId": "1.1",
- "data": {"clip": [ 0, 0, 500, 0, 500, 100, 0, 100]},
- "children": [],
- }
-]
-
-_EVENTS = model.TimelineModel(event_data=_RAW_EVENTS,
- shift_world_to_zero=False).GetAllEvents()
-
-_EVENTS_ONLY_PAINT = [e for e in _EVENTS if e.name == 'Paint']
-
-_EVENTS_SAME_RECTANGLE = model.TimelineModel(
- event_data=_RAW_EVENTS_SAME_RECTANGLE,
- shift_world_to_zero=False).GetAllEvents()
-
-
-class _StartTimeTest(unittest.TestCase):
- def testWithAllEvents(self):
- start_time = speedindex._StartTime(_EVENTS)
- self.assertEquals(140, start_time)
-
- def testWithNoLayoutEvents(self):
- start_time = speedindex._StartTime(_EVENTS_SAME_RECTANGLE)
- self.assertEquals(0, start_time)
-
-
-class _GetRectangleTest(unittest.TestCase):
- def testGetRectangleBig(self):
- rectangle = speedindex._GetRectangle(_EVENTS[0])
- self.assertEquals(("1.1", 0, 0, 1000, 500), rectangle)
-
- def testGetRectangleSmall(self):
- rectangle = speedindex._GetRectangle(_EVENTS[3])
- self.assertEquals(("1.1", 375, 300, 5, 100), rectangle)
-
-
-class _GroupEventByRectangleTest(unittest.TestCase):
- def testNotGrouped(self):
- grouped = speedindex._GroupEventByRectangle(_EVENTS_ONLY_PAINT)
- self.assertEquals(3, len(grouped.keys()))
- self.assertEquals(1, len(grouped.values()[0]))
-
- def testGrouped(self):
- grouped = speedindex._GroupEventByRectangle(_EVENTS_SAME_RECTANGLE)
- self.assertEquals(1, len(grouped.keys()))
- self.assertEquals(2, len(grouped.values()[0]))
-
-
-class _GetTimeAreaPairsTest(unittest.TestCase):
- def testAdjusted(self):
- time_area_pairs = (speedindex._GetTimeAreaPairs(_EVENTS_ONLY_PAINT))
- total_area = sum([area for _, area in time_area_pairs])
- expected_total_area = (1000*500/2) + (5*100) + (500*100)
- self.assertEquals(expected_total_area, total_area)
-
- def testAdjustedWithSameRectangle(self):
- time_area_pairs = (speedindex._GetTimeAreaPairs(_EVENTS_SAME_RECTANGLE))
- total_area = sum([area for _, area in time_area_pairs])
- expected_total_area = (500*100/2)
- self.assertEquals(expected_total_area, total_area)
-
-
-class _GetTimeCompletenessPairsTest(unittest.TestCase):
- def setUp(self):
- time_area_pairs = (speedindex._GetTimeAreaPairs(_EVENTS_ONLY_PAINT))
- self.time_completeness_pairs = (speedindex.
- _GetTimeCompletenessPairs(time_area_pairs))
-
- def testEndsWithOne(self):
- self.assertEquals(1.0, self.time_completeness_pairs[-1][1])
-
- def testMonotonicallyIncreasing(self):
- prev_completeness = 0
- for _, completeness in self.time_completeness_pairs:
- self.assertTrue(prev_completeness <= completeness)
- prev_completeness = completeness
-
-
-class _SpeedIndexTest(unittest.TestCase):
- def testOne(self):
- area1, area2 = 5 * 100, 500 * 100 / 2
- total_area = float(area1 + area2)
- completeness1 = area1 / total_area
- interval1 = 1.0 * (400 - 140) # before first paint event
- interval2 = (1.0 - completeness1) * (500 - 400)
- expected = interval1 + interval2
- self.assertEquals(expected, speedindex._SpeedIndex(_EVENTS))
-
- def testTwo(self):
- interval1 = 1.0 * (100 - 0) # before first paint event
- interval2 = 0.5 * (500 - 100) # between paint event 1 and 2
- expected = interval1 + interval2
- self.assertEquals(expected, speedindex._SpeedIndex(_EVENTS_SAME_RECTANGLE))
+# Sample timeline data in the json format provided by devtools.
+# The sample events will be used in several tests below.
+_TEST_DIR = os.path.join(os.path.dirname(__file__), 'unittest_data')
+_SAMPLE_DATA = json.load(open(os.path.join(_TEST_DIR, 'sample_timeline.json')))
+_SAMPLE_EVENTS = model.TimelineModel(event_data=_SAMPLE_DATA).GetAllEvents()
+
+
+class IncludedPaintEventsTest(unittest.TestCase):
+ def testNumberPaintEvents(self):
+ # In the sample data, there's one event that occurs before the layout event,
+ # and one paint event that's not a leaf paint event.
+ events = speedindex._IncludedPaintEvents(_SAMPLE_EVENTS)
+ self.assertEquals(len(events), 5)
+
+
+class TimeAreaDictTest(unittest.TestCase):
+ def testAdjustedAreaDict(self):
+ paint_events = speedindex._IncludedPaintEvents(_SAMPLE_EVENTS)
+ time_area_dict = speedindex._TimeAreaDict(paint_events)
+ self.assertEquals(len(time_area_dict), 4)
+ # The event that ends at time 100 is a fullscreen; it's discounted by half.
+ self.assertEquals(time_area_dict[100], 500000)
+ self.assertEquals(time_area_dict[300], 100000)
+ self.assertEquals(time_area_dict[400], 200000)
+ self.assertEquals(time_area_dict[800], 200000)
+
+
+class SpeedIndexTest(unittest.TestCase):
+ def testWithSampleData(self):
+ # Add up the parts of the speed index for each time interval.
+ # Each part is the time interval multiplied by the proportion of the
+ # total area value that is not yet painted for that interval.
+ parts = []
+ parts.append(100 * 1.0)
+ parts.append(200 * 0.5)
+ parts.append(100 * 0.4)
+ parts.append(400 * 0.2)
+ expected = sum(parts) # 330.0
+ actual = speedindex._SpeedIndex(_SAMPLE_EVENTS)
+ self.assertEqual(actual, expected)
+
+
+class WPTComparisonTest(unittest.TestCase):
+ """Compare the speed index results with results given by webpagetest.org.
+
+ Given the same timeline data, both this speedindex metric and webpagetest.org
+ should both return the same results. Fortunately, webpagetest.org also
+ provides timeline data in json format along with the speed index results.
+ """
+
+ def _TestJsonTimelineExpectation(self, filename, expected):
+ """Check whether the result for some timeline data is as expected.
+
+ Args:
+ filename: Filename of a json file which contains a
+ expected: The result expected based on the WPT result.
+ """
+ file_path = os.path.join(_TEST_DIR, filename)
+ with open(file_path) as json_file:
+ raw_events = json.load(json_file)
+ events = model.TimelineModel(event_data=raw_events).GetAllEvents()
+ actual = speedindex._SpeedIndex(events)
+ # The result might differ by 1 or more milliseconds due to rounding,
+ # so compare to the nearest 10 milliseconds.
+ self.assertAlmostEqual(actual, expected, places=-1)
+
+ def testCern(self):
+ # Page: http://info.cern.ch/hypertext/WWW/TheProject.html
+ # This page has only one paint event.
+ self._TestJsonTimelineExpectation('cern_repeat_timeline.json', 379.0)
+
+ def testBaidu(self):
+ # Page: http://www.baidu.com/
+ # This page has several paint events, but no nested paint events.
+ self._TestJsonTimelineExpectation('baidu_repeat_timeline.json', 1761.43)
+
+ def test2ch(self):
+ # Page: http://2ch.net/
+ # This page has several paint events, including nested paint events.
+ self._TestJsonTimelineExpectation('2ch_repeat_timeline.json', 674.58)
if __name__ == "__main__":
diff --git a/tools/perf/metrics/unittest_data/2ch_repeat_timeline.json b/tools/perf/metrics/unittest_data/2ch_repeat_timeline.json
new file mode 100644
index 0000000..fd0be8b
--- /dev/null
+++ b/tools/perf/metrics/unittest_data/2ch_repeat_timeline.json
@@ -0,0 +1 @@
+[{"children":[{"data":{"requestId":"3176.3","requestMethod":"GET","url":"http:\/\/2ch.net\/"},"frameId":"3176.1","startTime":1377648369729.2,"type":"ResourceSendRequest","usedHeapSize":2055348}],"data":[],"endTime":1377648369730.2,"startTime":1377648369728.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369737.2,"startTime":1377648369736.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369737.2,"startTime":1377648369737.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/html","requestId":"3176.3","statusCode":200},"endTime":1377648369738.2,"frameId":"3176.1","startTime":1377648369738.2,"type":"ResourceReceiveResponse","usedHeapSize":2055348}],"data":[],"endTime":1377648369738.2,"startTime":1377648369737.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369739.2,"startTime":1377648369739.2,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"elementCount":0},"endTime":1377648369747.2,"frameId":"3176.1","startTime":1377648369747.2,"type":"RecalculateStyles","usedHeapSize":2137748}],"data":{"encodedDataLength":0,"requestId":"3176.3"},"endTime":1377648369783.2,"frameId":"3176.1","startTime":1377648369741.2,"type":"ResourceReceivedData","usedHeapSize":2468412,"usedHeapSizeDelta":413064}],"data":[],"endTime":1377648369783.2,"startTime":1377648369741.2,"type":"Program","usedHeapSizeDelta":413064},{"children":[],"data":[],"endTime":1377648369784.2,"startTime":1377648369784.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369784.2,"startTime":1377648369784.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369784.2,"startTime":1377648369784.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369736.2,"requestId":"3176.3"},"frameId":"3176.1","startTime":1377648369785.2,"type":"ResourceFinish","usedHeapSize":2468412}],"data":[],"endTime":1377648369789.2,"startTime":1377648369784.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369790.2,"startTime":1377648369790.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369790.2,"startTime":1377648369790.2,"type":"Program"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377648369801.2,"frameId":"3176.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369800.2,"type":"FunctionCall","usedHeapSize":2798804,"usedHeapSizeDelta":3956},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377648369802.2,"frameId":"3176.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"}],"startTime":1377648369802.2,"type":"FunctionCall","usedHeapSize":2835092,"usedHeapSizeDelta":1744}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377648369802.2,"frameId":"3176.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"}],"startTime":1377648369802.2,"type":"FunctionCall","usedHeapSize":2840456,"usedHeapSizeDelta":11128}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377648369802.2,"frameId":"3176.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369801.2,"type":"FunctionCall","usedHeapSize":2841368,"usedHeapSizeDelta":31052}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377648369802.2,"frameId":"3176.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369799.2,"type":"FunctionCall","usedHeapSize":2842004,"usedHeapSizeDelta":50976},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377648369803.2,"frameId":"3176.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369802.2,"type":"FunctionCall","usedHeapSize":2845236,"usedHeapSizeDelta":684}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377648369803.2,"frameId":"3176.1","stackTrace":[{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369799.2,"type":"FunctionCall","usedHeapSize":2851656,"usedHeapSizeDelta":73956}],"data":{"scriptLine":1,"scriptName":"binding"},"endTime":1377648369812.2,"frameId":"3176.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369798.2,"type":"FunctionCall","usedHeapSize":2874460,"usedHeapSizeDelta":114384},{"children":[],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377648369823.2,"frameId":"3176.1","stackTrace":[{"columnNumber":20,"functionName":"","lineNumber":11,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369817.2,"type":"FunctionCall","usedHeapSize":2897596,"usedHeapSizeDelta":7220},{"children":[],"data":{"scriptLine":1,"scriptName":"runtime"},"endTime":1377648369832.2,"frameId":"3176.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":82,"url":"extension"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"},{"columnNumber":10,"functionName":"","lineNumber":79,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":190,"url":"binding"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"}],"startTime":1377648369826.2,"type":"FunctionCall","usedHeapSize":2989292,"usedHeapSizeDelta":42396}],"data":{"scriptLine":1,"scriptName":"extension"},"endTime":1377648369832.2,"frameId":"3176.1","stackTrace":[{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377648369796.2,"type":"FunctionCall","usedHeapSize":2993548,"usedHeapSizeDelta":251252}],"data":{"lineNumber":1,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377648369836.2,"frameId":"3176.1","startTime":1377648369796.2,"type":"EvaluateScript","usedHeapSize":3070056,"usedHeapSizeDelta":338260},{"data":{"requestId":"3176.4","requestMethod":"GET","url":"http:\/\/2ch.net\/2ch_top.css"},"frameId":"3176.1","startTime":1377648369839.2,"type":"ResourceSendRequest","usedHeapSize":3070056}],"data":{"endLine":18,"startLine":0},"endTime":1377648369839.2,"frameId":"3176.1","startTime":1377648369790.2,"type":"ParseHTML","usedHeapSize":3070056,"usedHeapSizeDelta":601644}],"data":[],"endTime":1377648369839.2,"startTime":1377648369790.2,"type":"Program","usedHeapSizeDelta":601644},{"children":[{"data":{"requestId":"3176.5","requestMethod":"GET","url":"http:\/\/2ch.net\/images\/2ch_logo.gif"},"frameId":"3176.1","startTime":1377648369841.2,"type":"ResourceSendRequest","usedHeapSize":3070056},{"data":{"requestId":"3176.6","requestMethod":"GET","url":"http:\/\/2ch.net\/images\/senna88x31.gif"},"frameId":"3176.1","startTime":1377648369841.2,"type":"ResourceSendRequest","usedHeapSize":3070056},{"data":{"requestId":"3176.7","requestMethod":"GET","url":"http:\/\/2ch.net\/images\/search_button.gif"},"frameId":"3176.1","startTime":1377648369842.2,"type":"ResourceSendRequest","usedHeapSize":3070056},{"data":{"requestId":"3176.8","requestMethod":"GET","url":"http:\/\/img.bbchat.tv\/images\/bannar\/46860-3.gif"},"frameId":"3176.1","startTime":1377648369842.2,"type":"ResourceSendRequest","usedHeapSize":3070056},{"data":{"requestId":"3176.9","requestMethod":"GET","url":"http:\/\/www.dd.iij4u.or.jp\/~cap\/y_3copyok.jpg"},"frameId":"3176.1","startTime":1377648369843.2,"type":"ResourceSendRequest","usedHeapSize":3070056},{"data":{"requestId":"3176.10","requestMethod":"GET","url":"http:\/\/count.2ch.net\/ct.php\/index"},"frameId":"3176.1","startTime":1377648369843.2,"type":"ResourceSendRequest","usedHeapSize":3070056}],"data":[],"endTime":1377648369843.2,"startTime":1377648369841.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369844.2,"startTime":1377648369844.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369844.2,"startTime":1377648369844.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369844.2,"startTime":1377648369844.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369848.2,"startTime":1377648369848.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/css","requestId":"3176.4","statusCode":200},"endTime":1377648369849.2,"frameId":"3176.1","startTime":1377648369849.2,"type":"ResourceReceiveResponse","usedHeapSize":3070056}],"data":[],"endTime":1377648369849.2,"startTime":1377648369848.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369850.2,"startTime":1377648369850.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.4"},"endTime":1377648369859.2,"frameId":"3176.1","startTime":1377648369851.2,"type":"ResourceReceivedData","usedHeapSize":3070056}],"data":[],"endTime":1377648369859.2,"startTime":1377648369851.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369860.2,"startTime":1377648369860.2,"type":"Program"},{"children":[{"children":[],"data":{"elementCount":12},"endTime":1377648369866.2,"frameId":"3176.1","startTime":1377648369866.2,"type":"RecalculateStyles","usedHeapSize":3070056},{"children":[],"data":{"lineNumber":15,"url":"http:\/\/2ch.net\/"},"endTime":1377648369868.2,"frameId":"3176.1","startTime":1377648369867.2,"type":"EvaluateScript","usedHeapSize":3070792,"usedHeapSizeDelta":692},{"children":[{"data":[],"frameId":"3176.1","startTime":1377648369869.2,"type":"InvalidateLayout","usedHeapSize":3070792},{"data":[],"frameId":"3176.1","startTime":1377648369888.2,"type":"ScheduleStyleRecalculation","usedHeapSize":3076468},{"children":[],"data":{"elementCount":0},"endTime":1377648369900.2,"frameId":"3176.4","startTime":1377648369900.2,"type":"RecalculateStyles","usedHeapSize":3076468},{"children":[{"data":[],"frameId":"3176.4","startTime":1377648369900.2,"type":"ScheduleStyleRecalculation","usedHeapSize":3076468},{"data":[],"frameId":"3176.4","startTime":1377648369900.2,"type":"InvalidateLayout","usedHeapSize":3076468}],"data":{"endLine":0,"startLine":0},"endTime":1377648369900.2,"frameId":"3176.4","startTime":1377648369900.2,"type":"ParseHTML","usedHeapSize":3076468},{"data":[],"frameId":"3176.4","startTime":1377648369901.2,"type":"InvalidateLayout","usedHeapSize":3076468},{"children":[],"data":{"elementCount":3},"endTime":1377648369901.2,"frameId":"3176.4","startTime":1377648369901.2,"type":"RecalculateStyles","usedHeapSize":3076468},{"data":{"isMainFrame":false},"frameId":"3176.4","startTime":1377648369901.2,"type":"MarkDOMContent","usedHeapSize":3076468},{"data":{"requestId":"3176.11","requestMethod":"GET","url":"http:\/\/cast.texpo.jp\/2chtop\/main_frame.html"},"frameId":"3176.4","startTime":1377648369904.2,"type":"ResourceSendRequest","usedHeapSize":3076468},{"children":[],"data":{"elementCount":0},"endTime":1377648369911.2,"frameId":"3176.6","startTime":1377648369911.2,"type":"RecalculateStyles","usedHeapSize":3076468},{"children":[{"data":[],"frameId":"3176.6","startTime":1377648369912.2,"type":"ScheduleStyleRecalculation","usedHeapSize":3076468},{"data":[],"frameId":"3176.6","startTime":1377648369913.2,"type":"InvalidateLayout","usedHeapSize":3076468}],"data":{"endLine":0,"startLine":0},"endTime":1377648369913.2,"frameId":"3176.6","startTime":1377648369911.2,"type":"ParseHTML","usedHeapSize":3076468},{"data":[],"frameId":"3176.6","startTime":1377648369913.2,"type":"InvalidateLayout","usedHeapSize":3076468},{"children":[],"data":{"elementCount":3},"endTime":1377648369913.2,"frameId":"3176.6","startTime":1377648369913.2,"type":"RecalculateStyles","usedHeapSize":3076468},{"data":{"isMainFrame":false},"frameId":"3176.6","startTime":1377648369913.2,"type":"MarkDOMContent","usedHeapSize":3076468},{"data":{"requestId":"3176.12","requestMethod":"GET","url":"http:\/\/cast.texpo.jp\/2chtop\/moritapo_frame.html"},"frameId":"3176.6","startTime":1377648369913.2,"type":"ResourceSendRequest","usedHeapSize":3076468},{"data":[],"frameId":"3176.1","startTime":1377648369914.2,"type":"InvalidateLayout","usedHeapSize":3076468},{"children":[],"data":{"elementCount":4},"endTime":1377648369939.2,"frameId":"3176.1","startTime":1377648369914.2,"type":"RecalculateStyles","usedHeapSize":3076468},{"data":{"isMainFrame":true},"frameId":"3176.1","startTime":1377648369940.2,"type":"MarkDOMContent","usedHeapSize":3076468}],"data":{"endLine":0,"startLine":18},"endTime":1377648369941.2,"frameId":"3176.1","startTime":1377648369868.2,"type":"ParseHTML","usedHeapSize":3076468,"usedHeapSizeDelta":5676},{"data":{"didFail":false,"networkTime":1377648369846.2,"requestId":"3176.4"},"frameId":"3176.1","startTime":1377648369941.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369942.2,"startTime":1377648369860.2,"type":"Program","usedHeapSizeDelta":6412},{"children":[],"data":[],"endTime":1377648369942.2,"startTime":1377648369942.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.5","statusCode":200},"endTime":1377648369942.2,"frameId":"3176.1","startTime":1377648369942.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369944.2,"startTime":1377648369942.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369945.2,"startTime":1377648369945.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.6","statusCode":200},"endTime":1377648369947.2,"frameId":"3176.1","startTime":1377648369947.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369947.2,"startTime":1377648369947.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369947.2,"startTime":1377648369947.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.5"},"endTime":1377648369949.2,"frameId":"3176.1","startTime":1377648369948.2,"type":"ResourceReceivedData","usedHeapSize":3076468}],"data":[],"endTime":1377648369949.2,"startTime":1377648369948.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369949.2,"startTime":1377648369949.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369859.2,"requestId":"3176.5"},"frameId":"3176.1","startTime":1377648369952.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369955.2,"startTime":1377648369951.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369956.2,"startTime":1377648369956.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.7","statusCode":200},"endTime":1377648369961.2,"frameId":"3176.1","startTime":1377648369961.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369965.2,"startTime":1377648369958.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369968.2,"startTime":1377648369967.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.8","statusCode":200},"endTime":1377648369971.2,"frameId":"3176.1","startTime":1377648369970.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369972.2,"startTime":1377648369969.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369975.2,"startTime":1377648369974.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/jpeg","requestId":"3176.9","statusCode":200},"endTime":1377648369978.2,"frameId":"3176.1","startTime":1377648369978.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369982.2,"startTime":1377648369976.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369983.2,"startTime":1377648369982.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.6"},"endTime":1377648369984.2,"frameId":"3176.1","startTime":1377648369983.2,"type":"ResourceReceivedData","usedHeapSize":3076468}],"data":[],"endTime":1377648369984.2,"startTime":1377648369983.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369984.2,"startTime":1377648369984.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369862.2,"requestId":"3176.6"},"frameId":"3176.1","startTime":1377648369984.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369984.2,"startTime":1377648369984.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369985.2,"startTime":1377648369984.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.7"},"endTime":1377648369985.2,"frameId":"3176.1","startTime":1377648369985.2,"type":"ResourceReceivedData","usedHeapSize":3076468}],"data":[],"endTime":1377648369985.2,"startTime":1377648369985.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369986.2,"startTime":1377648369986.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369863.2,"requestId":"3176.7"},"frameId":"3176.1","startTime":1377648369986.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369986.2,"startTime":1377648369986.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369987.2,"startTime":1377648369987.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.8"},"endTime":1377648369987.2,"frameId":"3176.1","startTime":1377648369987.2,"type":"ResourceReceivedData","usedHeapSize":3076468}],"data":[],"endTime":1377648369987.2,"startTime":1377648369987.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369988.2,"startTime":1377648369988.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369864.2,"requestId":"3176.8"},"frameId":"3176.1","startTime":1377648369988.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369988.2,"startTime":1377648369988.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369989.2,"startTime":1377648369989.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.9"},"endTime":1377648369990.2,"frameId":"3176.1","startTime":1377648369989.2,"type":"ResourceReceivedData","usedHeapSize":3076468}],"data":[],"endTime":1377648369990.2,"startTime":1377648369989.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369990.2,"startTime":1377648369990.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369865.2,"requestId":"3176.9"},"frameId":"3176.1","startTime":1377648369991.2,"type":"ResourceFinish","usedHeapSize":3076468}],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/html","requestId":"3176.11","statusCode":200},"endTime":1377648369991.2,"frameId":"3176.4","startTime":1377648369991.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/html","requestId":"3176.12","statusCode":200},"endTime":1377648369991.2,"frameId":"3176.6","startTime":1377648369991.2,"type":"ResourceReceiveResponse","usedHeapSize":3076468}],"data":[],"endTime":1377648369991.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369995.2,"startTime":1377648369991.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648369996.2,"startTime":1377648369996.2,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"elementCount":0},"endTime":1377648369996.2,"frameId":"3176.4","startTime":1377648369996.2,"type":"RecalculateStyles","usedHeapSize":3076468}],"data":{"encodedDataLength":0,"requestId":"3176.11"},"endTime":1377648370015.2,"frameId":"3176.4","startTime":1377648369996.2,"type":"ResourceReceivedData","usedHeapSize":3421624,"usedHeapSizeDelta":345156}],"data":[],"endTime":1377648370015.2,"startTime":1377648369996.2,"type":"Program","usedHeapSizeDelta":345156},{"children":[],"data":[],"endTime":1377648370015.2,"startTime":1377648370015.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369936.2,"requestId":"3176.11"},"frameId":"3176.4","startTime":1377648370016.2,"type":"ResourceFinish","usedHeapSize":3421624}],"data":[],"endTime":1377648370016.2,"startTime":1377648370015.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370016.2,"startTime":1377648370016.2,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"elementCount":0},"endTime":1377648370018.2,"frameId":"3176.6","startTime":1377648370018.2,"type":"RecalculateStyles","usedHeapSize":3421624}],"data":{"encodedDataLength":0,"requestId":"3176.12"},"endTime":1377648370029.2,"frameId":"3176.6","startTime":1377648370016.2,"type":"ResourceReceivedData","usedHeapSize":3761036,"usedHeapSizeDelta":339412}],"data":[],"endTime":1377648370029.2,"startTime":1377648370016.2,"type":"Program","usedHeapSizeDelta":339412},{"children":[],"data":[],"endTime":1377648370029.2,"startTime":1377648370029.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648369936.2,"requestId":"3176.12"},"frameId":"3176.6","startTime":1377648370030.2,"type":"ResourceFinish","usedHeapSize":3761036}],"data":[],"endTime":1377648370031.2,"startTime":1377648370029.2,"type":"Program"},{"children":[{"children":[{"data":{"requestId":"3176.13","requestMethod":"GET","url":"http:\/\/cast.texpo.jp\/2chtop\/2ch_top.css"},"frameId":"3176.4","startTime":1377648370034.2,"type":"ResourceSendRequest","usedHeapSize":3761036},{"data":{"requestId":"3176.14","requestMethod":"GET","url":"http:\/\/cast.texpo.jp\/2chtop\/images\/topimage.gif"},"frameId":"3176.4","startTime":1377648370035.2,"type":"ResourceSendRequest","usedHeapSize":3761036},{"data":{"requestId":"3176.15","requestMethod":"GET","url":"http:\/\/cast.texpo.jp\/2chtop\/images\/2t2013banner03.jpg"},"frameId":"3176.4","startTime":1377648370036.2,"type":"ResourceSendRequest","usedHeapSize":3761036}],"data":{"endLine":23,"startLine":0},"endTime":1377648370036.2,"frameId":"3176.4","startTime":1377648370033.2,"type":"ParseHTML","usedHeapSize":3761036}],"data":[],"endTime":1377648370036.2,"startTime":1377648370033.2,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"dirtyObjects":1,"partialLayout":false,"root":[0,0,997,0,997,50,0,50],"rootNode":-4,"totalObjects":1},"endTime":1377648370255.2,"frameId":"3176.6","startTime":1377648370252.2,"type":"Layout","usedHeapSize":3761036},{"children":[],"data":{"dirtyObjects":2,"partialLayout":false,"root":[0,0,997,0,997,550,0,550],"rootNode":-5,"totalObjects":2},"endTime":1377648370258.2,"frameId":"3176.4","startTime":1377648370256.2,"type":"Layout","usedHeapSize":3761036}],"data":{"dirtyObjects":107,"partialLayout":false,"root":[0,0,997,0,997,650,0,650],"rootNode":-6,"totalObjects":107},"endTime":1377648370258.2,"frameId":"3176.1","startTime":1377648370036.2,"type":"Layout","usedHeapSize":3761036}],"data":[],"endTime":1377648370259.2,"startTime":1377648370036.2,"type":"Program"},{"children":[{"children":[{"data":{"isMainFrame":false},"frameId":"3176.4","startTime":1377648370263.2,"type":"MarkDOMContent","usedHeapSize":3761036}],"data":{"endLine":0,"startLine":23},"endTime":1377648370264.2,"frameId":"3176.4","startTime":1377648370261.2,"type":"ParseHTML","usedHeapSize":3761036}],"data":[],"endTime":1377648370264.2,"startTime":1377648370261.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370267.2,"startTime":1377648370266.2,"type":"Program"},{"children":[{"children":[],"data":{"endLine":16,"startLine":0},"endTime":1377648370270.2,"frameId":"3176.6","startTime":1377648370268.2,"type":"ParseHTML","usedHeapSize":3761036}],"data":[],"endTime":1377648370270.2,"startTime":1377648370268.2,"type":"Program"},{"children":[{"children":[{"data":{"isMainFrame":false},"frameId":"3176.6","startTime":1377648370271.2,"type":"MarkLoad","usedHeapSize":3761036},{"children":[],"data":{"dirtyObjects":2,"partialLayout":false,"root":[0,0,997,0,997,50,0,50],"rootNode":-4,"totalObjects":2},"endTime":1377648370271.2,"frameId":"3176.6","startTime":1377648370271.2,"type":"Layout","usedHeapSize":3761036},{"data":{"isMainFrame":false},"frameId":"3176.6","startTime":1377648370271.2,"type":"MarkDOMContent","usedHeapSize":3761036}],"data":{"endLine":0,"startLine":16},"endTime":1377648370271.2,"frameId":"3176.6","startTime":1377648370270.2,"type":"ParseHTML","usedHeapSize":3761036}],"data":[],"endTime":1377648370271.2,"startTime":1377648370270.2,"type":"Program"},{"children":[{"data":[],"startTime":1377648370271.2,"type":"BeginFrame","usedHeapSize":3761036},{"children":[{"children":[],"data":{"imageType":"GIF"},"endTime":1377648370297.2,"startTime":1377648370297.2,"type":"DecodeImage","usedHeapSize":3761036},{"children":[],"data":{"imageType":"GIF"},"endTime":1377648370317.2,"startTime":1377648370317.2,"type":"DecodeImage","usedHeapSize":3761036},{"children":[],"data":{"imageType":"GIF"},"endTime":1377648370318.2,"startTime":1377648370318.2,"type":"DecodeImage","usedHeapSize":3761036},{"children":[],"data":{"clip":[0,98,997,98,997,648,0,648],"layerRootNode":-5},"endTime":1377648370319.2,"frameId":"3176.4","startTime":1377648370319.2,"type":"Paint","usedHeapSize":3761036}],"data":{"clip":[0,0,997,0,997,650,0,650],"layerRootNode":-6},"endTime":1377648370319.2,"frameId":"3176.1","startTime":1377648370288.2,"type":"Paint","usedHeapSize":3761036}],"data":[],"endTime":1377648370341.2,"startTime":1377648370271.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370343.2,"startTime":1377648370343.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370344.2,"startTime":1377648370343.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.10","statusCode":200},"endTime":1377648370344.2,"frameId":"3176.1","startTime":1377648370344.2,"type":"ResourceReceiveResponse","usedHeapSize":3761036}],"data":[],"endTime":1377648370344.2,"startTime":1377648370344.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370345.2,"startTime":1377648370345.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":1024,"requestId":"3176.10"},"endTime":1377648370346.2,"frameId":"3176.1","startTime":1377648370345.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370346.2,"startTime":1377648370345.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":782,"requestId":"3176.10"},"endTime":1377648370346.2,"frameId":"3176.1","startTime":1377648370346.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370346.2,"startTime":1377648370346.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370346.2,"startTime":1377648370346.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648370039.2,"requestId":"3176.10"},"frameId":"3176.1","startTime":1377648370347.2,"type":"ResourceFinish","usedHeapSize":3761036}],"data":[],"endTime":1377648370347.2,"startTime":1377648370346.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370347.2,"startTime":1377648370347.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370349.2,"startTime":1377648370349.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/css","requestId":"3176.13","statusCode":200},"endTime":1377648370350.2,"frameId":"3176.4","startTime":1377648370350.2,"type":"ResourceReceiveResponse","usedHeapSize":3761036}],"data":[],"endTime":1377648370350.2,"startTime":1377648370349.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370351.2,"startTime":1377648370351.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"3176.14","statusCode":200},"endTime":1377648370351.2,"frameId":"3176.4","startTime":1377648370351.2,"type":"ResourceReceiveResponse","usedHeapSize":3761036}],"data":[],"endTime":1377648370352.2,"startTime":1377648370351.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370352.2,"startTime":1377648370352.2,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/jpeg","requestId":"3176.15","statusCode":200},"endTime":1377648370353.2,"frameId":"3176.4","startTime":1377648370353.2,"type":"ResourceReceiveResponse","usedHeapSize":3761036}],"data":[],"endTime":1377648370353.2,"startTime":1377648370352.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370354.2,"startTime":1377648370354.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.13"},"endTime":1377648370354.2,"frameId":"3176.4","startTime":1377648370354.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370354.2,"startTime":1377648370354.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370354.2,"startTime":1377648370354.2,"type":"Program"},{"children":[{"children":[{"data":[],"frameId":"3176.6","startTime":1377648370359.2,"type":"InvalidateLayout","usedHeapSize":3761036}],"data":{"elementCount":12},"endTime":1377648370360.2,"frameId":"3176.6","startTime":1377648370358.2,"type":"RecalculateStyles","usedHeapSize":3761036},{"data":[],"frameId":"3176.6","startTime":1377648370361.2,"type":"InvalidateLayout","usedHeapSize":3761036},{"data":[],"frameId":"3176.6","startTime":1377648370361.2,"type":"InvalidateLayout","usedHeapSize":3761036},{"children":[{"data":[],"frameId":"3176.4","startTime":1377648370364.2,"type":"InvalidateLayout","usedHeapSize":3761036}],"data":{"elementCount":18},"endTime":1377648370364.2,"frameId":"3176.4","startTime":1377648370364.2,"type":"RecalculateStyles","usedHeapSize":3761036},{"data":[],"frameId":"3176.4","startTime":1377648370364.2,"type":"InvalidateLayout","usedHeapSize":3761036},{"data":[],"frameId":"3176.4","startTime":1377648370364.2,"type":"InvalidateLayout","usedHeapSize":3761036},{"data":{"didFail":false,"networkTime":1377648370044.2,"requestId":"3176.13"},"frameId":"3176.4","startTime":1377648370364.2,"type":"ResourceFinish","usedHeapSize":3761036}],"data":[],"endTime":1377648370365.2,"startTime":1377648370354.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370366.2,"startTime":1377648370365.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.14"},"endTime":1377648370369.2,"frameId":"3176.4","startTime":1377648370366.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370369.2,"startTime":1377648370366.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370370.2,"startTime":1377648370369.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.15"},"endTime":1377648370371.2,"frameId":"3176.4","startTime":1377648370370.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370371.2,"startTime":1377648370370.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370371.2,"startTime":1377648370371.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648370046.2,"requestId":"3176.15"},"frameId":"3176.4","startTime":1377648370372.2,"type":"ResourceFinish","usedHeapSize":3761036}],"data":[],"endTime":1377648370373.2,"startTime":1377648370372.2,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"3176.14"},"endTime":1377648370374.2,"frameId":"3176.4","startTime":1377648370373.2,"type":"ResourceReceivedData","usedHeapSize":3761036}],"data":[],"endTime":1377648370374.2,"startTime":1377648370373.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370374.2,"startTime":1377648370374.2,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377648370047.2,"requestId":"3176.14"},"frameId":"3176.4","startTime":1377648370375.2,"type":"ResourceFinish","usedHeapSize":3761036},{"data":{"isMainFrame":false},"frameId":"3176.4","startTime":1377648370375.2,"type":"MarkLoad","usedHeapSize":3761036},{"children":[],"data":{"dirtyObjects":19,"partialLayout":false,"root":[0,0,997,0,997,550,0,550],"rootNode":-5,"totalObjects":19},"endTime":1377648370392.2,"frameId":"3176.4","startTime":1377648370376.2,"type":"Layout","usedHeapSize":3761036},{"children":[{"children":[],"data":{"scriptLine":101,"scriptName":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377648370404.2,"frameId":"3176.1","startTime":1377648370394.2,"type":"FunctionCall","usedHeapSize":3819172,"usedHeapSizeDelta":48852},{"children":[{"data":{"usedHeapSizeDelta":249880},"endTime":1377648370412.2,"stackTrace":[{"columnNumber":139,"functionName":"onload","lineNumber":22,"url":"http:\/\/2ch.net\/"}],"startTime":1377648370406.2,"type":"GCEvent","usedHeapSize":3661148},{"data":[],"frameId":"3176.1","stackTrace":[{"columnNumber":139,"functionName":"onload","lineNumber":22,"url":"http:\/\/2ch.net\/"}],"startTime":1377648370418.2,"type":"ScheduleStyleRecalculation","usedHeapSize":3661228},{"children":[],"data":{"elementCount":2},"endTime":1377648370418.2,"frameId":"3176.1","stackTrace":[{"columnNumber":139,"functionName":"onload","lineNumber":22,"url":"http:\/\/2ch.net\/"}],"startTime":1377648370418.2,"type":"RecalculateStyles","usedHeapSize":3662168}],"data":{"scriptLine":22,"scriptName":"http:\/\/2ch.net\/"},"endTime":1377648370421.2,"frameId":"3176.1","startTime":1377648370405.2,"type":"FunctionCall","usedHeapSize":3662168,"usedHeapSizeDelta":4294792768}],"data":{"type":"load"},"endTime":1377648370421.2,"frameId":"3176.1","startTime":1377648370392.2,"type":"EventDispatch","usedHeapSize":3662168,"usedHeapSizeDelta":4294868428},{"data":{"isMainFrame":true},"frameId":"3176.1","startTime":1377648370421.2,"type":"MarkLoad","usedHeapSize":3662168}],"data":[],"endTime":1377648370423.2,"startTime":1377648370374.2,"type":"Program","usedHeapSizeDelta":4294868428},{"children":[{"children":[],"data":{"dirtyObjects":20,"partialLayout":false,"root":[0,0,997,0,997,50,0,50],"rootNode":-4,"totalObjects":20},"endTime":1377648370431.2,"frameId":"3176.6","startTime":1377648370423.2,"type":"Layout","usedHeapSize":3662168}],"data":[],"endTime":1377648370432.2,"startTime":1377648370423.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370432.2,"startTime":1377648370432.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370432.2,"startTime":1377648370432.2,"type":"Program"},{"children":[{"data":[],"startTime":1377648370432.2,"type":"BeginFrame","usedHeapSize":3662168},{"children":[{"children":[{"children":[],"data":{"imageType":"GIF"},"endTime":1377648370458.2,"startTime":1377648370448.2,"type":"DecodeImage","usedHeapSize":3662168},{"children":[],"data":{"imageType":"JPEG"},"endTime":1377648370460.2,"startTime":1377648370459.2,"type":"DecodeImage","usedHeapSize":3662168}],"data":{"clip":[0,98,997,98,997,648,0,648],"layerRootNode":-5},"endTime":1377648370461.2,"frameId":"3176.4","startTime":1377648370448.2,"type":"Paint","usedHeapSize":3662168}],"data":{"clip":[0,60,997,60,997,648,0,648],"layerRootNode":-6},"endTime":1377648370461.2,"frameId":"3176.1","startTime":1377648370443.2,"type":"Paint","usedHeapSize":3662168}],"data":[],"endTime":1377648370462.2,"startTime":1377648370432.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370463.2,"startTime":1377648370463.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370463.2,"startTime":1377648370463.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370463.2,"startTime":1377648370463.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370463.2,"startTime":1377648370463.2,"type":"Program"},{"children":[{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377648370467.2,"frameId":"3176.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370467.2,"type":"FunctionCall","usedHeapSize":3717324,"usedHeapSizeDelta":4720},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377648370468.2,"frameId":"3176.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370468.2,"type":"FunctionCall","usedHeapSize":3753120,"usedHeapSizeDelta":2272}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377648370468.2,"frameId":"3176.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370468.2,"type":"FunctionCall","usedHeapSize":3758752,"usedHeapSizeDelta":11156}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377648370468.2,"frameId":"3176.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370468.2,"type":"FunctionCall","usedHeapSize":3759932,"usedHeapSizeDelta":31252}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377648370468.2,"frameId":"3176.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370467.2,"type":"FunctionCall","usedHeapSize":3760836,"usedHeapSizeDelta":51920},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377648370468.2,"frameId":"3176.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370468.2,"type":"FunctionCall","usedHeapSize":3764204,"usedHeapSizeDelta":676}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377648370469.2,"frameId":"3176.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370467.2,"type":"FunctionCall","usedHeapSize":3770056,"usedHeapSizeDelta":74288}],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377648370469.2,"frameId":"3176.1","startTime":1377648370467.2,"type":"FunctionCall","usedHeapSize":3777272,"usedHeapSizeDelta":100164},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377648370469.2,"frameId":"3176.1","startTime":1377648370469.2,"type":"FunctionCall","usedHeapSize":3777440},{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377648370470.2,"frameId":"3176.4","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370470.2,"type":"FunctionCall","usedHeapSize":3832756,"usedHeapSizeDelta":4756},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377648370471.2,"frameId":"3176.4","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370471.2,"type":"FunctionCall","usedHeapSize":3869432,"usedHeapSizeDelta":3152}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377648370471.2,"frameId":"3176.4","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370471.2,"type":"FunctionCall","usedHeapSize":3875220,"usedHeapSizeDelta":12192}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377648370471.2,"frameId":"3176.4","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370471.2,"type":"FunctionCall","usedHeapSize":3876412,"usedHeapSizeDelta":32300}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377648370471.2,"frameId":"3176.4","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370470.2,"type":"FunctionCall","usedHeapSize":3877328,"usedHeapSizeDelta":53016},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377648370474.2,"frameId":"3176.4","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370473.2,"type":"FunctionCall","usedHeapSize":3880852,"usedHeapSizeDelta":676}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377648370474.2,"frameId":"3176.4","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370470.2,"type":"FunctionCall","usedHeapSize":3886708,"usedHeapSizeDelta":75544}],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377648370476.2,"frameId":"3176.4","startTime":1377648370470.2,"type":"FunctionCall","usedHeapSize":3893936,"usedHeapSizeDelta":101400},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377648370476.2,"frameId":"3176.4","startTime":1377648370476.2,"type":"FunctionCall","usedHeapSize":3894104},{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377648370480.2,"frameId":"3176.6","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370480.2,"type":"FunctionCall","usedHeapSize":3949888,"usedHeapSizeDelta":4756},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370483.2,"type":"FunctionCall","usedHeapSize":3985716,"usedHeapSizeDelta":2304}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370481.2,"type":"FunctionCall","usedHeapSize":3991504,"usedHeapSizeDelta":11344}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370481.2,"type":"FunctionCall","usedHeapSize":3992696,"usedHeapSizeDelta":31452}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370479.2,"type":"FunctionCall","usedHeapSize":3993612,"usedHeapSizeDelta":52168},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370484.2,"type":"FunctionCall","usedHeapSize":3997136,"usedHeapSizeDelta":676}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377648370484.2,"frameId":"3176.6","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377648370479.2,"type":"FunctionCall","usedHeapSize":4003272,"usedHeapSizeDelta":74976}],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377648370484.2,"frameId":"3176.6","startTime":1377648370476.2,"type":"FunctionCall","usedHeapSize":4010500,"usedHeapSizeDelta":101300},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377648370484.2,"frameId":"3176.6","startTime":1377648370484.2,"type":"FunctionCall","usedHeapSize":4010668},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377648370484.2,"frameId":"3176.1","startTime":1377648370484.2,"type":"FunctionCall","usedHeapSize":4010788},{"children":[],"data":{"scriptLine":270,"scriptName":"miscellaneous_bindings"},"endTime":1377648370485.2,"frameId":"3176.1","startTime":1377648370484.2,"type":"FunctionCall","usedHeapSize":4013340,"usedHeapSizeDelta":2404}],"data":[],"endTime":1377648370485.2,"startTime":1377648370463.2,"type":"Program","usedHeapSizeDelta":351172},{"children":[],"data":[],"endTime":1377648370486.2,"startTime":1377648370486.2,"type":"Program"},{"children":[{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377648370487.2,"frameId":"3176.1","startTime":1377648370487.2,"type":"FunctionCall","usedHeapSize":4014652,"usedHeapSizeDelta":1180},{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377648370487.2,"frameId":"3176.4","startTime":1377648370487.2,"type":"FunctionCall","usedHeapSize":4014948,"usedHeapSizeDelta":164},{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377648370487.2,"frameId":"3176.6","startTime":1377648370487.2,"type":"FunctionCall","usedHeapSize":4015248,"usedHeapSizeDelta":168},{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377648370487.2,"frameId":"3176.1","startTime":1377648370487.2,"type":"FunctionCall","usedHeapSize":4015588,"usedHeapSizeDelta":208}],"data":[],"endTime":1377648370487.2,"startTime":1377648370486.2,"type":"Program","usedHeapSizeDelta":2248},{"children":[],"data":[],"endTime":1377648370487.2,"startTime":1377648370487.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370488.2,"startTime":1377648370488.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370489.2,"startTime":1377648370488.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370547.2,"startTime":1377648370547.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370547.2,"startTime":1377648370547.2,"type":"Program"},{"children":[{"data":{"usedHeapSizeDelta":1436604},"endTime":1377648370560.2,"startTime":1377648370548.2,"type":"GCEvent","usedHeapSize":2578984}],"data":[],"endTime":1377648370560.2,"startTime":1377648370547.2,"type":"Program","usedHeapSizeDelta":4293530692},{"children":[],"data":[],"endTime":1377648370895.2,"startTime":1377648370895.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370923.2,"startTime":1377648370923.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370952.2,"startTime":1377648370952.2,"type":"Program"},{"children":[{"data":[],"startTime":1377648370952.2,"type":"BeginFrame","usedHeapSize":2578984},{"children":[],"data":{"clip":[544,64,547,64,547,82,544,82],"layerRootNode":-6},"endTime":1377648370954.2,"frameId":"3176.1","startTime":1377648370953.2,"type":"Paint","usedHeapSize":2578984}],"data":[],"endTime":1377648370954.2,"startTime":1377648370952.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370955.2,"startTime":1377648370955.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648370956.2,"startTime":1377648370956.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648371484.2,"startTime":1377648371484.2,"type":"Program"},{"children":[{"data":[],"startTime":1377648371484.2,"type":"BeginFrame","usedHeapSize":2578984},{"children":[],"data":{"clip":[544,64,547,64,547,82,544,82],"layerRootNode":-6},"endTime":1377648371485.2,"frameId":"3176.1","startTime":1377648371484.2,"type":"Paint","usedHeapSize":2578984}],"data":[],"endTime":1377648371485.2,"startTime":1377648371484.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648371486.2,"startTime":1377648371486.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648371488.2,"startTime":1377648371487.2,"type":"Program"},{"children":[],"data":[],"endTime":1377648371785.2,"startTime":1377648371785.2,"type":"Program"}] \ No newline at end of file
diff --git a/tools/perf/metrics/unittest_data/baidu_repeat_timeline.json b/tools/perf/metrics/unittest_data/baidu_repeat_timeline.json
new file mode 100644
index 0000000..0929378
--- /dev/null
+++ b/tools/perf/metrics/unittest_data/baidu_repeat_timeline.json
@@ -0,0 +1 @@
+[{"children":[{"data":{"requestId":"2664.3","requestMethod":"GET","url":"http:\/\/www.baidu.com\/"},"frameId":"2664.1","startTime":1377637870418.1,"type":"ResourceSendRequest","usedHeapSize":2001444}],"data":[],"endTime":1377637870418.1,"startTime":1377637870416.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870424.1,"startTime":1377637870424.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870452.1,"startTime":1377637870452.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870885.1,"startTime":1377637870880.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870885.1,"startTime":1377637870885.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/html","requestId":"2664.3","statusCode":200},"endTime":1377637870887.1,"frameId":"2664.1","startTime":1377637870887.1,"type":"ResourceReceiveResponse","usedHeapSize":2001444}],"data":[],"endTime":1377637870887.1,"startTime":1377637870885.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870888.1,"startTime":1377637870887.1,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"elementCount":0},"endTime":1377637870894.1,"frameId":"2664.1","startTime":1377637870894.1,"type":"RecalculateStyles","usedHeapSize":2083844}],"data":{"encodedDataLength":2461,"requestId":"2664.3"},"endTime":1377637870906.1,"frameId":"2664.1","startTime":1377637870888.1,"type":"ResourceReceivedData","usedHeapSize":2412332,"usedHeapSizeDelta":410888}],"data":[],"endTime":1377637870906.1,"startTime":1377637870888.1,"type":"Program","usedHeapSizeDelta":410888},{"children":[],"data":[],"endTime":1377637870906.1,"startTime":1377637870906.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870906.1,"startTime":1377637870906.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":2400,"requestId":"2664.3"},"endTime":1377637870906.1,"frameId":"2664.1","startTime":1377637870906.1,"type":"ResourceReceivedData","usedHeapSize":2412332}],"data":[],"endTime":1377637870929.1,"startTime":1377637870906.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870929.1,"startTime":1377637870929.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637870892.1,"requestId":"2664.3"},"frameId":"2664.1","startTime":1377637870929.1,"type":"ResourceFinish","usedHeapSize":2412332}],"data":[],"endTime":1377637870929.1,"startTime":1377637870929.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637870929.1,"startTime":1377637870929.1,"type":"Program"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377637871009.1,"frameId":"2664.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871009.1,"type":"FunctionCall","usedHeapSize":2744596,"usedHeapSizeDelta":3956},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377637871010.1,"frameId":"2664.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"}],"startTime":1377637871010.1,"type":"FunctionCall","usedHeapSize":2789072,"usedHeapSizeDelta":1744}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377637871010.1,"frameId":"2664.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"}],"startTime":1377637871009.1,"type":"FunctionCall","usedHeapSize":2794436,"usedHeapSizeDelta":11128}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377637871010.1,"frameId":"2664.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871009.1,"type":"FunctionCall","usedHeapSize":2795348,"usedHeapSizeDelta":31052}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377637871010.1,"frameId":"2664.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871008.1,"type":"FunctionCall","usedHeapSize":2795984,"usedHeapSizeDelta":59164},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377637871022.1,"frameId":"2664.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871021.1,"type":"FunctionCall","usedHeapSize":2799216,"usedHeapSizeDelta":684}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377637871023.1,"frameId":"2664.1","stackTrace":[{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871008.1,"type":"FunctionCall","usedHeapSize":2805636,"usedHeapSizeDelta":82144}],"data":{"scriptLine":1,"scriptName":"binding"},"endTime":1377637871023.1,"frameId":"2664.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871008.1,"type":"FunctionCall","usedHeapSize":2828440,"usedHeapSizeDelta":122572},{"children":[],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377637871024.1,"frameId":"2664.1","stackTrace":[{"columnNumber":20,"functionName":"","lineNumber":11,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871023.1,"type":"FunctionCall","usedHeapSize":2851576,"usedHeapSizeDelta":7220},{"children":[],"data":{"scriptLine":1,"scriptName":"runtime"},"endTime":1377637871038.1,"frameId":"2664.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":82,"url":"extension"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"},{"columnNumber":10,"functionName":"","lineNumber":79,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":190,"url":"binding"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"}],"startTime":1377637871025.1,"type":"FunctionCall","usedHeapSize":2936844,"usedHeapSizeDelta":42012}],"data":{"scriptLine":1,"scriptName":"extension"},"endTime":1377637871038.1,"frameId":"2664.1","stackTrace":[{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377637871006.1,"type":"FunctionCall","usedHeapSize":2941100,"usedHeapSizeDelta":252980}],"data":{"lineNumber":1,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377637871040.1,"frameId":"2664.1","startTime":1377637871006.1,"type":"EvaluateScript","usedHeapSize":3017608,"usedHeapSizeDelta":339956},{"children":[],"data":{"elementCount":5},"endTime":1377637871043.1,"frameId":"2664.1","startTime":1377637871043.1,"type":"RecalculateStyles","usedHeapSize":3017608},{"children":[],"data":{"lineNumber":1,"url":"http:\/\/www.baidu.com\/"},"endTime":1377637871043.1,"frameId":"2664.1","startTime":1377637871043.1,"type":"EvaluateScript","usedHeapSize":3018428,"usedHeapSizeDelta":776}],"data":{"endLine":0,"startLine":0},"endTime":1377637871043.1,"frameId":"2664.1","startTime":1377637870965.1,"type":"ParseHTML","usedHeapSize":3018428,"usedHeapSizeDelta":606096}],"data":[],"endTime":1377637871043.1,"startTime":1377637870965.1,"type":"Program","usedHeapSizeDelta":606096},{"children":[{"children":[{"data":[],"frameId":"2664.1","startTime":1377637871044.1,"type":"InvalidateLayout","usedHeapSize":3018428},{"data":{"requestId":"2664.4","requestMethod":"GET","url":"http:\/\/www.baidu.com\/img\/bdlogo.gif"},"frameId":"2664.1","startTime":1377637871047.1,"type":"ResourceSendRequest","usedHeapSize":3018428},{"data":{"requestId":"2664.5","requestMethod":"GET","url":"http:\/\/www.baidu.com\/img\/i-1.0.0.png"},"frameId":"2664.1","startTime":1377637871049.1,"type":"ResourceSendRequest","usedHeapSize":3024104},{"data":[],"frameId":"2664.1","startTime":1377637871082.1,"type":"InvalidateLayout","usedHeapSize":3024104}],"data":{"endLine":0,"startLine":0},"endTime":1377637871082.1,"frameId":"2664.1","startTime":1377637871044.1,"type":"ParseHTML","usedHeapSize":3024104,"usedHeapSizeDelta":5676}],"data":[],"endTime":1377637871082.1,"startTime":1377637871044.1,"type":"Program","usedHeapSizeDelta":5676},{"children":[{"children":[{"data":{"requestId":"2664.6","requestMethod":"GET","url":"http:\/\/www.baidu.com\/cache\/global\/img\/gs.gif"},"frameId":"2664.1","startTime":1377637871100.1,"type":"ResourceSendRequest","usedHeapSize":3024104},{"children":[],"data":{"lineNumber":1,"url":"http:\/\/www.baidu.com\/"},"endTime":1377637871136.1,"frameId":"2664.1","startTime":1377637871136.1,"type":"EvaluateScript","usedHeapSize":3026432,"usedHeapSizeDelta":2284}],"data":{"endLine":0,"startLine":0},"endTime":1377637871137.1,"frameId":"2664.1","startTime":1377637871099.1,"type":"ParseHTML","usedHeapSize":3026432,"usedHeapSizeDelta":2328}],"data":[],"endTime":1377637871137.1,"startTime":1377637871099.1,"type":"Program","usedHeapSizeDelta":2328},{"children":[{"children":[{"data":{"requestId":"2664.7","requestMethod":"GET","url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"},"frameId":"2664.1","startTime":1377637871146.1,"type":"ResourceSendRequest","usedHeapSize":3026432}],"data":{"endLine":0,"startLine":0},"endTime":1377637871146.1,"frameId":"2664.1","startTime":1377637871138.1,"type":"ParseHTML","usedHeapSize":3026432}],"data":[],"endTime":1377637871146.1,"startTime":1377637871138.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871146.1,"startTime":1377637871146.1,"type":"Program"},{"children":[{"data":{"requestId":"2664.8","requestMethod":"GET","url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/tangram-1.3.4c1.0_07038476.js"},"frameId":"2664.1","startTime":1377637871146.1,"type":"ResourceSendRequest","usedHeapSize":3026432}],"data":[],"endTime":1377637871147.1,"startTime":1377637871146.1,"type":"Program"},{"children":[{"data":{"requestId":"2664.9","requestMethod":"GET","url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/user\/js\/u_3603075f.js"},"frameId":"2664.1","startTime":1377637871147.1,"type":"ResourceSendRequest","usedHeapSize":3026432}],"data":[],"endTime":1377637871147.1,"startTime":1377637871147.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871147.1,"startTime":1377637871147.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871147.1,"startTime":1377637871147.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871147.1,"startTime":1377637871147.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871147.1,"startTime":1377637871147.1,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"dirtyObjects":0,"partialLayout":false,"root":[0,0,1014,0,1014,650,0,650],"rootNode":-4,"totalObjects":88},"endTime":1377637871964.1,"frameId":"2664.1","startTime":1377637871952.1,"type":"Layout","usedHeapSize":3026432}],"data":{"dirtyObjects":88,"partialLayout":false,"root":[0,0,1014,0,1014,650,0,650],"rootNode":-4,"totalObjects":88},"endTime":1377637871964.1,"frameId":"2664.1","startTime":1377637871147.1,"type":"Layout","usedHeapSize":3026432}],"data":[],"endTime":1377637871965.1,"startTime":1377637871147.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637871973.1,"startTime":1377637871968.1,"type":"Program"},{"children":[{"data":[],"startTime":1377637871976.1,"type":"BeginFrame","usedHeapSize":3026432},{"children":[],"data":{"clip":[0,0,1014,0,1014,650,0,650],"layerRootNode":-4},"endTime":1377637872091.1,"frameId":"2664.1","startTime":1377637872003.1,"type":"Paint","usedHeapSize":3026432}],"data":[],"endTime":1377637872092.1,"startTime":1377637871974.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872092.1,"startTime":1377637872092.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872093.1,"startTime":1377637872092.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872093.1,"startTime":1377637872093.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"2664.4","statusCode":200},"endTime":1377637872094.1,"frameId":"2664.1","startTime":1377637872094.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872095.1,"startTime":1377637872093.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872095.1,"startTime":1377637872095.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872095.1,"startTime":1377637872095.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872095.1,"startTime":1377637872095.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/png","requestId":"2664.5","statusCode":200},"endTime":1377637872096.1,"frameId":"2664.1","startTime":1377637872096.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872097.1,"startTime":1377637872095.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872098.1,"startTime":1377637872098.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872100.1,"startTime":1377637872099.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"2664.4"},"endTime":1377637872100.1,"frameId":"2664.1","startTime":1377637872100.1,"type":"ResourceReceivedData","usedHeapSize":3026432}],"data":[],"endTime":1377637872100.1,"startTime":1377637872100.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872100.1,"startTime":1377637872100.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637871424.1,"requestId":"2664.4"},"frameId":"2664.1","startTime":1377637872100.1,"type":"ResourceFinish","usedHeapSize":3026432}],"data":[],"endTime":1377637872100.1,"startTime":1377637872100.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872102.1,"startTime":1377637872102.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"2664.5"},"endTime":1377637872105.1,"frameId":"2664.1","startTime":1377637872103.1,"type":"ResourceReceivedData","usedHeapSize":3026432}],"data":[],"endTime":1377637872105.1,"startTime":1377637872103.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872105.1,"startTime":1377637872105.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637871427.1,"requestId":"2664.5"},"frameId":"2664.1","startTime":1377637872105.1,"type":"ResourceFinish","usedHeapSize":3026432}],"data":[],"endTime":1377637872105.1,"startTime":1377637872105.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"image\/gif","requestId":"2664.6","statusCode":200},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"application\/javascript","requestId":"2664.7","statusCode":200},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"application\/javascript","requestId":"2664.8","statusCode":200},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[{"data":[],"frameId":"2664.1","startTime":1377637872106.1,"type":"InvalidateLayout","usedHeapSize":3026432}],"data":{"encodedDataLength":0,"requestId":"2664.6"},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceivedData","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637871461.1,"requestId":"2664.6"},"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceFinish","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"application\/javascript","requestId":"2664.9","statusCode":200},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceiveResponse","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"2664.7"},"endTime":1377637872106.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"ResourceReceivedData","usedHeapSize":3026432}],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872106.1,"startTime":1377637872106.1,"type":"Program"},{"children":[{"children":[{"data":[],"frameId":"2664.1","stackTrace":[{"columnNumber":706,"functionName":"","lineNumber":28,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"},{"columnNumber":797,"functionName":"","lineNumber":28,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872144.1,"type":"ScheduleStyleRecalculation","usedHeapSize":3156584},{"data":{"singleShot":true,"timeout":3000,"timerId":1},"frameId":"2664.1","stackTrace":[{"columnNumber":800,"functionName":"","lineNumber":28,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872145.1,"type":"TimerInstall","usedHeapSize":3157616},{"children":[],"data":{"scriptLine":1,"scriptName":"InjectedScript"},"endTime":1377637872152.1,"frameId":"2664.1","stackTrace":[{"columnNumber":230,"functionName":"","lineNumber":29,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872152.1,"type":"FunctionCall","usedHeapSize":3247084,"usedHeapSizeDelta":3220},{"children":[],"data":{"scriptLine":1,"scriptName":"InjectedScript"},"endTime":1377637872153.1,"frameId":"2664.1","stackTrace":[{"columnNumber":349,"functionName":"","lineNumber":29,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872153.1,"type":"FunctionCall","usedHeapSize":3250672,"usedHeapSizeDelta":2360},{"children":[],"data":{"scriptLine":1,"scriptName":"InjectedScript"},"endTime":1377637872153.1,"frameId":"2664.1","stackTrace":[{"columnNumber":349,"functionName":"","lineNumber":29,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872153.1,"type":"FunctionCall","usedHeapSize":3250928,"usedHeapSizeDelta":80},{"children":[],"data":{"scriptLine":1,"scriptName":"InjectedScript"},"endTime":1377637872153.1,"frameId":"2664.1","stackTrace":[{"columnNumber":442,"functionName":"","lineNumber":29,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"}],"startTime":1377637872153.1,"type":"FunctionCall","usedHeapSize":3252108,"usedHeapSizeDelta":80}],"data":{"lineNumber":1,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"},"endTime":1377637872153.1,"frameId":"2664.1","startTime":1377637872106.1,"type":"EvaluateScript","usedHeapSize":3252204,"usedHeapSizeDelta":225728},{"children":[{"children":[{"data":{"requestId":"2664.10","requestMethod":"GET","url":"http:\/\/suggestion.baidu.com\/su?wd=&cb=window.bdsug.sugPreRequest&sid=&t=1377637872165"},"frameId":"2664.1","stackTrace":[{"columnNumber":568,"functionName":"bdsug.initSug","lineNumber":23,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"},{"columnNumber":765,"functionName":"bds.se.sug","lineNumber":26,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/home_299f7566.js"},{"columnNumber":6538,"functionName":"","lineNumber":1,"url":"http:\/\/www.baidu.com\/"}],"startTime":1377637872172.1,"type":"ResourceSendRequest","usedHeapSize":3383472}],"data":{"lineNumber":1,"url":"http:\/\/www.baidu.com\/"},"endTime":1377637872180.1,"frameId":"2664.1","startTime":1377637872153.1,"type":"EvaluateScript","usedHeapSize":3393016,"usedHeapSizeDelta":140768}],"data":{"endLine":0,"startLine":0},"endTime":1377637872181.1,"frameId":"2664.1","startTime":1377637872153.1,"type":"ParseHTML","usedHeapSize":3393016,"usedHeapSizeDelta":140812},{"data":{"didFail":false,"networkTime":1377637871462.1,"requestId":"2664.7"},"frameId":"2664.1","startTime":1377637872181.1,"type":"ResourceFinish","usedHeapSize":3393016}],"data":[],"endTime":1377637872182.1,"startTime":1377637872106.1,"type":"Program","usedHeapSizeDelta":366584},{"children":[],"data":[],"endTime":1377637872185.1,"startTime":1377637872184.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"2664.8"},"endTime":1377637872185.1,"frameId":"2664.1","startTime":1377637872185.1,"type":"ResourceReceivedData","usedHeapSize":3393016}],"data":[],"endTime":1377637872185.1,"startTime":1377637872185.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872185.1,"startTime":1377637872185.1,"type":"Program"},{"children":[{"children":[],"data":{"lineNumber":1,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/tangram-1.3.4c1.0_07038476.js"},"endTime":1377637872258.1,"frameId":"2664.1","startTime":1377637872193.1,"type":"EvaluateScript","usedHeapSize":3487452,"usedHeapSizeDelta":94392},{"children":[],"data":{"endLine":0,"startLine":0},"endTime":1377637872259.1,"frameId":"2664.1","startTime":1377637872258.1,"type":"ParseHTML","usedHeapSize":3487452},{"data":{"didFail":false,"networkTime":1377637871462.1,"requestId":"2664.8"},"frameId":"2664.1","startTime":1377637872259.1,"type":"ResourceFinish","usedHeapSize":3487452}],"data":[],"endTime":1377637872259.1,"startTime":1377637872185.1,"type":"Program","usedHeapSizeDelta":94436},{"children":[],"data":[],"endTime":1377637872259.1,"startTime":1377637872259.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":0,"requestId":"2664.9"},"endTime":1377637872259.1,"frameId":"2664.1","startTime":1377637872259.1,"type":"ResourceReceivedData","usedHeapSize":3487452}],"data":[],"endTime":1377637872259.1,"startTime":1377637872259.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872259.1,"startTime":1377637872259.1,"type":"Program"},{"children":[{"children":[{"data":{"requestId":"2664.11","requestMethod":"GET","url":"http:\/\/passport.baidu.com\/passApi\/js\/uni_login_wrapper.js?cdnversion=1377637872254"},"frameId":"2664.1","stackTrace":[{"columnNumber":967,"functionName":"baidu.sio.callByBrowser","lineNumber":19,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/tangram-1.3.4c1.0_07038476.js"},{"columnNumber":454,"functionName":"","lineNumber":1,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/user\/js\/u_3603075f.js"}],"startTime":1377637872262.1,"type":"ResourceSendRequest","usedHeapSize":3630736}],"data":{"lineNumber":1,"url":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/user\/js\/u_3603075f.js"},"endTime":1377637872263.1,"frameId":"2664.1","startTime":1377637872259.1,"type":"EvaluateScript","usedHeapSize":3642560,"usedHeapSizeDelta":155064},{"children":[{"children":[],"data":{"lineNumber":1,"url":"http:\/\/www.baidu.com\/"},"endTime":1377637872263.1,"frameId":"2664.1","startTime":1377637872263.1,"type":"EvaluateScript","usedHeapSize":3647844,"usedHeapSizeDelta":5240},{"children":[],"data":{"lineNumber":2,"url":"http:\/\/www.baidu.com\/"},"endTime":1377637872263.1,"frameId":"2664.1","startTime":1377637872263.1,"type":"EvaluateScript","usedHeapSize":3648468,"usedHeapSizeDelta":580},{"data":[],"frameId":"2664.1","startTime":1377637872263.1,"type":"InvalidateLayout","usedHeapSize":3648468},{"children":[],"data":{"elementCount":3},"endTime":1377637872264.1,"frameId":"2664.1","startTime":1377637872263.1,"type":"RecalculateStyles","usedHeapSize":3648468},{"data":{"isMainFrame":true},"frameId":"2664.1","startTime":1377637872264.1,"type":"MarkDOMContent","usedHeapSize":3648468}],"data":{"endLine":0,"startLine":0},"endTime":1377637872264.1,"frameId":"2664.1","startTime":1377637872263.1,"type":"ParseHTML","usedHeapSize":3648468,"usedHeapSizeDelta":5908},{"data":{"didFail":false,"networkTime":1377637871462.1,"requestId":"2664.9"},"frameId":"2664.1","startTime":1377637872264.1,"type":"ResourceFinish","usedHeapSize":3648468}],"data":[],"endTime":1377637872265.1,"startTime":1377637872259.1,"type":"Program","usedHeapSizeDelta":161016},{"children":[{"data":{"usedHeapSizeDelta":1144644},"endTime":1377637872379.1,"startTime":1377637872265.1,"type":"GCEvent","usedHeapSize":2503824}],"data":[],"endTime":1377637872379.1,"startTime":1377637872265.1,"type":"Program","usedHeapSizeDelta":4293822652},{"children":[],"data":[],"endTime":1377637872379.1,"startTime":1377637872379.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872379.1,"startTime":1377637872379.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872379.1,"startTime":1377637872379.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872379.1,"startTime":1377637872379.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872379.1,"startTime":1377637872379.1,"type":"Program"},{"children":[{"children":[],"data":{"dirtyObjects":11,"partialLayout":false,"root":[0,0,1014,0,1014,650,0,650],"rootNode":-4,"totalObjects":90},"endTime":1377637872381.1,"frameId":"2664.1","startTime":1377637872379.1,"type":"Layout","usedHeapSize":2503824}],"data":[],"endTime":1377637872381.1,"startTime":1377637872379.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872423.1,"startTime":1377637872423.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"baiduapp\/json","requestId":"2664.10","statusCode":200},"endTime":1377637872424.1,"frameId":"2664.1","startTime":1377637872424.1,"type":"ResourceReceiveResponse","usedHeapSize":2503824}],"data":[],"endTime":1377637872424.1,"startTime":1377637872424.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872425.1,"startTime":1377637872425.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":259,"requestId":"2664.10"},"endTime":1377637872425.1,"frameId":"2664.1","startTime":1377637872425.1,"type":"ResourceReceivedData","usedHeapSize":2503824}],"data":[],"endTime":1377637872425.1,"startTime":1377637872425.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872425.1,"startTime":1377637872425.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637872422.1,"requestId":"2664.10"},"frameId":"2664.1","startTime":1377637872425.1,"type":"ResourceFinish","usedHeapSize":2503824}],"data":[],"endTime":1377637872425.1,"startTime":1377637872425.1,"type":"Program"},{"children":[{"children":[],"data":{"lineNumber":1,"url":"http:\/\/suggestion.baidu.com\/su?wd=&cb=window.bdsug.sugPreRequest&sid=&t=1377637872165"},"endTime":1377637872426.1,"frameId":"2664.1","startTime":1377637872425.1,"type":"EvaluateScript","usedHeapSize":2506308,"usedHeapSizeDelta":2356}],"data":[],"endTime":1377637872426.1,"startTime":1377637872425.1,"type":"Program","usedHeapSizeDelta":2484},{"children":[],"data":[],"endTime":1377637872464.1,"startTime":1377637872464.1,"type":"Program"},{"children":[{"data":[],"startTime":1377637872464.1,"type":"BeginFrame","usedHeapSize":2506308},{"children":[{"children":[],"data":{"imageType":"GIF"},"endTime":1377637872472.1,"startTime":1377637872472.1,"type":"DecodeImage","usedHeapSize":2506308}],"data":{"clip":[372,24,642,24,642,153,372,153],"layerRootNode":-4},"endTime":1377637872472.1,"frameId":"2664.1","startTime":1377637872472.1,"type":"Paint","usedHeapSize":2506308},{"children":[{"children":[],"data":{"imageType":"PNG"},"endTime":1377637872472.1,"startTime":1377637872472.1,"type":"DecodeImage","usedHeapSize":2506308}],"data":{"clip":[257,180,677,180,677,211,257,211],"layerRootNode":-4},"endTime":1377637872472.1,"frameId":"2664.1","startTime":1377637872472.1,"type":"Paint","usedHeapSize":2506308},{"children":[],"data":{"clip":[682,179,779,179,779,213,682,213],"layerRootNode":-4},"endTime":1377637872473.1,"frameId":"2664.1","startTime":1377637872472.1,"type":"Paint","usedHeapSize":2506308},{"children":[],"data":{"clip":[147,506,867,506,867,521,147,521],"layerRootNode":-4},"endTime":1377637872473.1,"frameId":"2664.1","startTime":1377637872473.1,"type":"Paint","usedHeapSize":2506308},{"children":[{"children":[],"data":{"imageType":"GIF"},"endTime":1377637872473.1,"startTime":1377637872473.1,"type":"DecodeImage","usedHeapSize":2506308}],"data":{"clip":[147,557,867,557,867,586,147,586],"layerRootNode":-4},"endTime":1377637872473.1,"frameId":"2664.1","startTime":1377637872473.1,"type":"Paint","usedHeapSize":2506308}],"data":[],"endTime":1377637872473.1,"startTime":1377637872464.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872573.1,"startTime":1377637872573.1,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/javascript","requestId":"2664.11","statusCode":200},"endTime":1377637872574.1,"frameId":"2664.1","startTime":1377637872574.1,"type":"ResourceReceiveResponse","usedHeapSize":2506308}],"data":[],"endTime":1377637872574.1,"startTime":1377637872573.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872580.1,"startTime":1377637872580.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872581.1,"startTime":1377637872580.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":1024,"requestId":"2664.11"},"endTime":1377637872582.1,"frameId":"2664.1","startTime":1377637872581.1,"type":"ResourceReceivedData","usedHeapSize":2506308}],"data":[],"endTime":1377637872582.1,"startTime":1377637872581.1,"type":"Program"},{"children":[{"children":[],"data":{"encodedDataLength":281,"requestId":"2664.11"},"endTime":1377637872582.1,"frameId":"2664.1","startTime":1377637872582.1,"type":"ResourceReceivedData","usedHeapSize":2506308}],"data":[],"endTime":1377637872582.1,"startTime":1377637872582.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872589.1,"startTime":1377637872589.1,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377637872577.1,"requestId":"2664.11"},"frameId":"2664.1","startTime":1377637872589.1,"type":"ResourceFinish","usedHeapSize":2506308}],"data":[],"endTime":1377637872589.1,"startTime":1377637872589.1,"type":"Program"},{"children":[{"children":[],"data":{"lineNumber":1,"url":"http:\/\/passport.baidu.com\/passApi\/js\/uni_login_wrapper.js?cdnversion=1377637872254"},"endTime":1377637872589.1,"frameId":"2664.1","startTime":1377637872589.1,"type":"EvaluateScript","usedHeapSize":2509964,"usedHeapSizeDelta":3612},{"children":[{"children":[],"data":{"scriptLine":19,"scriptName":"http:\/\/s1.bdstatic.com\/r\/www\/cache\/static\/global\/js\/tangram-1.3.4c1.0_07038476.js"},"endTime":1377637872589.1,"frameId":"2664.1","startTime":1377637872589.1,"type":"FunctionCall","usedHeapSize":2557444,"usedHeapSizeDelta":28980}],"data":{"type":"load"},"endTime":1377637872589.1,"frameId":"2664.1","startTime":1377637872589.1,"type":"EventDispatch","usedHeapSize":2557444,"usedHeapSizeDelta":47480},{"children":[{"children":[],"data":{"scriptLine":101,"scriptName":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377637872598.1,"frameId":"2664.1","startTime":1377637872589.1,"type":"FunctionCall","usedHeapSize":2630832,"usedHeapSizeDelta":58436},{"children":[{"data":[],"frameId":"2664.1","stackTrace":[{"columnNumber":9452,"functionName":"","lineNumber":1,"url":"http:\/\/www.baidu.com\/"}],"startTime":1377637872599.1,"type":"ScheduleStyleRecalculation","usedHeapSize":2631672},{"children":[],"data":{"elementCount":2},"endTime":1377637872599.1,"frameId":"2664.1","stackTrace":[{"columnNumber":9452,"functionName":"","lineNumber":1,"url":"http:\/\/www.baidu.com\/"}],"startTime":1377637872599.1,"type":"RecalculateStyles","usedHeapSize":2632612}],"data":{"scriptLine":1,"scriptName":"http:\/\/www.baidu.com\/"},"endTime":1377637872600.1,"frameId":"2664.1","startTime":1377637872598.1,"type":"FunctionCall","usedHeapSize":2632612,"usedHeapSizeDelta":1700}],"data":{"type":"load"},"endTime":1377637872600.1,"frameId":"2664.1","startTime":1377637872589.1,"type":"EventDispatch","usedHeapSize":2632612,"usedHeapSizeDelta":75168},{"data":{"isMainFrame":true},"frameId":"2664.1","startTime":1377637872600.1,"type":"MarkLoad","usedHeapSize":2632612}],"data":[],"endTime":1377637872601.1,"startTime":1377637872589.1,"type":"Program","usedHeapSizeDelta":126304},{"children":[],"data":[],"endTime":1377637872601.1,"startTime":1377637872601.1,"type":"Program"},{"children":[{"data":[],"startTime":1377637872601.1,"type":"BeginFrame","usedHeapSize":2632612},{"children":[],"data":{"clip":[264,184,670,184,670,208,264,208],"layerRootNode":-4},"endTime":1377637872603.1,"frameId":"2664.1","startTime":1377637872602.1,"type":"Paint","usedHeapSize":2632612}],"data":[],"endTime":1377637872603.1,"startTime":1377637872601.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872604.1,"startTime":1377637872604.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872604.1,"startTime":1377637872604.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872611.1,"startTime":1377637872611.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872611.1,"startTime":1377637872611.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637872613.1,"startTime":1377637872613.1,"type":"Program"},{"children":[{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377637872619.1,"frameId":"2664.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872619.1,"type":"FunctionCall","usedHeapSize":2690684,"usedHeapSizeDelta":4332},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2726332,"usedHeapSizeDelta":1736}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2731688,"usedHeapSizeDelta":10404}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872619.1,"type":"FunctionCall","usedHeapSize":2732592,"usedHeapSizeDelta":30284}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872619.1,"type":"FunctionCall","usedHeapSize":2733220,"usedHeapSizeDelta":50616},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2736372,"usedHeapSizeDelta":676}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377637872620.1,"frameId":"2664.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377637872619.1,"type":"FunctionCall","usedHeapSize":2742224,"usedHeapSizeDelta":73588}],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377637872620.1,"frameId":"2664.1","startTime":1377637872619.1,"type":"FunctionCall","usedHeapSize":2749580,"usedHeapSizeDelta":101184},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377637872620.1,"frameId":"2664.1","startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2749748},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377637872620.1,"frameId":"2664.1","startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2749868},{"children":[],"data":{"scriptLine":270,"scriptName":"miscellaneous_bindings"},"endTime":1377637872621.1,"frameId":"2664.1","startTime":1377637872620.1,"type":"FunctionCall","usedHeapSize":2751892,"usedHeapSizeDelta":1876}],"data":[],"endTime":1377637872621.1,"startTime":1377637872619.1,"type":"Program","usedHeapSizeDelta":119280},{"children":[{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377637872621.1,"frameId":"2664.1","startTime":1377637872621.1,"type":"FunctionCall","usedHeapSize":2753204,"usedHeapSizeDelta":1180},{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377637872621.1,"frameId":"2664.1","startTime":1377637872621.1,"type":"FunctionCall","usedHeapSize":2753500,"usedHeapSizeDelta":164}],"data":[],"endTime":1377637872621.1,"startTime":1377637872621.1,"type":"Program","usedHeapSizeDelta":1608},{"children":[],"data":[],"endTime":1377637872943.1,"startTime":1377637872943.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873089.1,"startTime":1377637873089.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873130.1,"startTime":1377637873130.1,"type":"Program"},{"children":[{"data":[],"startTime":1377637873130.1,"type":"BeginFrame","usedHeapSize":2753500},{"children":[],"data":{"clip":[264,184,267,184,267,208,264,208],"layerRootNode":-4},"endTime":1377637873130.1,"frameId":"2664.1","startTime":1377637873130.1,"type":"Paint","usedHeapSize":2753500}],"data":[],"endTime":1377637873131.1,"startTime":1377637873130.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873131.1,"startTime":1377637873131.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873131.1,"startTime":1377637873131.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873662.1,"startTime":1377637873662.1,"type":"Program"},{"children":[{"data":[],"startTime":1377637873662.1,"type":"BeginFrame","usedHeapSize":2753500},{"children":[],"data":{"clip":[264,184,267,184,267,208,264,208],"layerRootNode":-4},"endTime":1377637873662.1,"frameId":"2664.1","startTime":1377637873662.1,"type":"Paint","usedHeapSize":2753500}],"data":[],"endTime":1377637873662.1,"startTime":1377637873662.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873663.1,"startTime":1377637873663.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637873663.1,"startTime":1377637873663.1,"type":"Program"},{"children":[],"data":[],"endTime":1377637874100.1,"startTime":1377637874100.1,"type":"Program"}] \ No newline at end of file
diff --git a/tools/perf/metrics/unittest_data/cern_repeat_timeline.json b/tools/perf/metrics/unittest_data/cern_repeat_timeline.json
new file mode 100644
index 0000000..c1a2cd1
--- /dev/null
+++ b/tools/perf/metrics/unittest_data/cern_repeat_timeline.json
@@ -0,0 +1 @@
+[{"children":[{"data":{"requestId":"1312.3","requestMethod":"GET","url":"http:\/\/info.cern.ch\/hypertext\/WWW\/TheProject.html"},"frameId":"1312.1","startTime":1377574729484.4,"type":"ResourceSendRequest","usedHeapSize":2055348}],"data":[],"endTime":1377574729484.4,"startTime":1377574729483.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729500.4,"startTime":1377574729500.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729501.4,"startTime":1377574729501.4,"type":"Program"},{"children":[{"children":[],"data":{"mimeType":"text\/html","requestId":"1312.3","statusCode":200},"endTime":1377574729501.4,"frameId":"1312.1","startTime":1377574729501.4,"type":"ResourceReceiveResponse","usedHeapSize":2055348}],"data":[],"endTime":1377574729502.4,"startTime":1377574729501.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729502.4,"startTime":1377574729502.4,"type":"Program"},{"children":[{"children":[{"children":[],"data":{"elementCount":0},"endTime":1377574729506.4,"frameId":"1312.1","startTime":1377574729506.4,"type":"RecalculateStyles","usedHeapSize":2137748}],"data":{"encodedDataLength":0,"requestId":"1312.3"},"endTime":1377574729526.4,"frameId":"1312.1","startTime":1377574729502.4,"type":"ResourceReceivedData","usedHeapSize":2468416,"usedHeapSizeDelta":413068}],"data":[],"endTime":1377574729526.4,"startTime":1377574729502.4,"type":"Program","usedHeapSizeDelta":413068},{"children":[],"data":[],"endTime":1377574729531.4,"startTime":1377574729531.4,"type":"Program"},{"children":[{"data":{"didFail":false,"networkTime":1377574729502.4,"requestId":"1312.3"},"frameId":"1312.1","startTime":1377574729531.4,"type":"ResourceFinish","usedHeapSize":2468416}],"data":[],"endTime":1377574729531.4,"startTime":1377574729531.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729531.4,"startTime":1377574729531.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729531.4,"startTime":1377574729531.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729531.4,"startTime":1377574729531.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729540.4,"startTime":1377574729540.4,"type":"Program"},{"children":[{"children":[{"data":[],"frameId":"1312.1","startTime":1377574729540.4,"type":"ScheduleStyleRecalculation","usedHeapSize":2468416},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377574729559.4,"frameId":"1312.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729558.4,"type":"FunctionCall","usedHeapSize":2798808,"usedHeapSizeDelta":3956},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377574729560.4,"frameId":"1312.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"}],"startTime":1377574729560.4,"type":"FunctionCall","usedHeapSize":2835096,"usedHeapSizeDelta":1744}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377574729561.4,"frameId":"1312.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"}],"startTime":1377574729559.4,"type":"FunctionCall","usedHeapSize":2840460,"usedHeapSizeDelta":11128}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377574729561.4,"frameId":"1312.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729559.4,"type":"FunctionCall","usedHeapSize":2841372,"usedHeapSizeDelta":31052}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377574729561.4,"frameId":"1312.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729558.4,"type":"FunctionCall","usedHeapSize":2842008,"usedHeapSizeDelta":50976},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377574729561.4,"frameId":"1312.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729561.4,"type":"FunctionCall","usedHeapSize":2845240,"usedHeapSizeDelta":684}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377574729561.4,"frameId":"1312.1","stackTrace":[{"columnNumber":13,"functionName":"","lineNumber":5,"url":"binding"},{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729558.4,"type":"FunctionCall","usedHeapSize":2851660,"usedHeapSizeDelta":73956}],"data":{"scriptLine":1,"scriptName":"binding"},"endTime":1377574729564.4,"frameId":"1312.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":7,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729558.4,"type":"FunctionCall","usedHeapSize":2874464,"usedHeapSizeDelta":114384},{"children":[],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377574729565.4,"frameId":"1312.1","stackTrace":[{"columnNumber":20,"functionName":"","lineNumber":11,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729565.4,"type":"FunctionCall","usedHeapSize":2897600,"usedHeapSizeDelta":7220},{"children":[],"data":{"scriptLine":1,"scriptName":"runtime"},"endTime":1377574729570.4,"frameId":"1312.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":82,"url":"extension"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"},{"columnNumber":10,"functionName":"","lineNumber":79,"url":"extension"},{"columnNumber":7,"functionName":"","lineNumber":190,"url":"binding"},{"columnNumber":16,"functionName":"target.(anonymous function)","lineNumber":20,"url":"extensions::SafeBuiltins"}],"startTime":1377574729566.4,"type":"FunctionCall","usedHeapSize":2989296,"usedHeapSizeDelta":42396}],"data":{"scriptLine":1,"scriptName":"extension"},"endTime":1377574729571.4,"frameId":"1312.1","stackTrace":[{"columnNumber":7,"functionName":"","lineNumber":188,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"}],"startTime":1377574729557.4,"type":"FunctionCall","usedHeapSize":2993552,"usedHeapSizeDelta":251252}],"data":{"lineNumber":1,"url":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377574729572.4,"frameId":"1312.1","startTime":1377574729555.4,"type":"EvaluateScript","usedHeapSize":3070060,"usedHeapSizeDelta":338260},{"data":[],"frameId":"1312.1","startTime":1377574729572.4,"type":"InvalidateLayout","usedHeapSize":3070060}],"data":{"endLine":73,"startLine":0},"endTime":1377574729577.4,"frameId":"1312.1","startTime":1377574729540.4,"type":"ParseHTML","usedHeapSize":3070060,"usedHeapSizeDelta":601644}],"data":[],"endTime":1377574729577.4,"startTime":1377574729540.4,"type":"Program","usedHeapSizeDelta":601644},{"children":[{"children":[{"data":[],"frameId":"1312.1","startTime":1377574729578.4,"type":"InvalidateLayout","usedHeapSize":3070060},{"children":[],"data":{"elementCount":52},"endTime":1377574729578.4,"frameId":"1312.1","startTime":1377574729578.4,"type":"RecalculateStyles","usedHeapSize":3070060},{"children":[{"children":[],"data":{"scriptLine":101,"scriptName":"chrome-extension:\/\/ejfgipfkkpdadoidbhfedneaabgolbno\/wpt\/script.js"},"endTime":1377574729614.4,"frameId":"1312.1","startTime":1377574729578.4,"type":"FunctionCall","usedHeapSize":3128104,"usedHeapSizeDelta":48916}],"data":{"type":"load"},"endTime":1377574729614.4,"frameId":"1312.1","startTime":1377574729578.4,"type":"EventDispatch","usedHeapSize":3128104,"usedHeapSizeDelta":58044},{"data":{"isMainFrame":true},"frameId":"1312.1","startTime":1377574729614.4,"type":"MarkLoad","usedHeapSize":3128104},{"children":[{"children":[],"data":{"dirtyObjects":0,"partialLayout":false,"root":[0,0,1014,0,1014,650,0,650],"rootNode":-3,"totalObjects":115},"endTime":1377574729708.4,"frameId":"1312.1","startTime":1377574729702.4,"type":"Layout","usedHeapSize":3128104}],"data":{"dirtyObjects":115,"partialLayout":false,"root":[0,0,1014,0,1014,650,0,650],"rootNode":-3,"totalObjects":115},"endTime":1377574729709.4,"frameId":"1312.1","startTime":1377574729616.4,"type":"Layout","usedHeapSize":3128104},{"data":{"isMainFrame":true},"frameId":"1312.1","startTime":1377574729709.4,"type":"MarkDOMContent","usedHeapSize":3128104}],"data":{"endLine":0,"startLine":73},"endTime":1377574729791.4,"frameId":"1312.1","startTime":1377574729578.4,"type":"ParseHTML","usedHeapSize":3128104,"usedHeapSizeDelta":58044}],"data":[],"endTime":1377574729791.4,"startTime":1377574729578.4,"type":"Program","usedHeapSizeDelta":58044},{"children":[],"data":[],"endTime":1377574729792.4,"startTime":1377574729792.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729792.4,"startTime":1377574729792.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729795.4,"startTime":1377574729794.4,"type":"Program"},{"children":[{"data":[],"startTime":1377574729795.4,"type":"BeginFrame","usedHeapSize":3128104},{"children":[],"data":{"clip":[0,0,1014,0,1014,650,0,650],"layerRootNode":-3},"endTime":1377574729863.4,"frameId":"1312.1","startTime":1377574729811.4,"type":"Paint","usedHeapSize":3128104}],"data":[],"endTime":1377574729864.4,"startTime":1377574729795.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729864.4,"startTime":1377574729864.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574729864.4,"startTime":1377574729864.4,"type":"Program"},{"children":[{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377574729897.4,"frameId":"1312.1","startTime":1377574729897.4,"type":"FunctionCall","usedHeapSize":3128224},{"children":[],"data":{"scriptLine":270,"scriptName":"miscellaneous_bindings"},"endTime":1377574729903.4,"frameId":"1312.1","startTime":1377574729897.4,"type":"FunctionCall","usedHeapSize":3130740,"usedHeapSizeDelta":2368},{"children":[{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"lastError"},"endTime":1377574729904.4,"frameId":"1312.1","stackTrace":[{"columnNumber":17,"functionName":"","lineNumber":5,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729904.4,"type":"FunctionCall","usedHeapSize":3186488,"usedHeapSizeDelta":4720},{"children":[{"children":[{"children":[],"data":{"scriptLine":1,"scriptName":"utils"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":22,"functionName":"","lineNumber":41,"url":"json_schema"},{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3222284,"usedHeapSizeDelta":2272}],"data":{"scriptLine":1,"scriptName":"json_schema"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":27,"functionName":"","lineNumber":8,"url":"schemaUtils"},{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3227916,"usedHeapSizeDelta":11156}],"data":{"scriptLine":1,"scriptName":"schemaUtils"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":16,"functionName":"","lineNumber":9,"url":"sendRequest"},{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3229096,"usedHeapSizeDelta":31252}],"data":{"scriptLine":1,"scriptName":"sendRequest"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":8,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729904.4,"type":"FunctionCall","usedHeapSize":3230000,"usedHeapSizeDelta":51920},{"children":[],"data":{"scriptLine":1,"scriptName":"unload_event"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":21,"functionName":"","lineNumber":11,"url":"event_bindings"},{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3233368,"usedHeapSizeDelta":676}],"data":{"scriptLine":1,"scriptName":"event_bindings"},"endTime":1377574729905.4,"frameId":"1312.1","stackTrace":[{"columnNumber":15,"functionName":"","lineNumber":12,"url":"miscellaneous_bindings"}],"startTime":1377574729903.4,"type":"FunctionCall","usedHeapSize":3239220,"usedHeapSizeDelta":74288}],"data":{"scriptLine":1,"scriptName":"miscellaneous_bindings"},"endTime":1377574729905.4,"frameId":"1312.1","startTime":1377574729903.4,"type":"FunctionCall","usedHeapSize":3246436,"usedHeapSizeDelta":100600},{"children":[],"data":{"scriptLine":76,"scriptName":"miscellaneous_bindings"},"endTime":1377574729905.4,"frameId":"1312.1","startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3246604}],"data":[],"endTime":1377574729905.4,"startTime":1377574729897.4,"type":"Program","usedHeapSizeDelta":118500},{"children":[{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377574729905.4,"frameId":"1312.1","startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3246736},{"children":[],"data":{"scriptLine":253,"scriptName":"miscellaneous_bindings"},"endTime":1377574729905.4,"frameId":"1312.1","startTime":1377574729905.4,"type":"FunctionCall","usedHeapSize":3247032,"usedHeapSizeDelta":164}],"data":[],"endTime":1377574729905.4,"startTime":1377574729905.4,"type":"Program","usedHeapSizeDelta":428},{"children":[],"data":[],"endTime":1377574729908.4,"startTime":1377574729908.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574730293.4,"startTime":1377574730291.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574730306.4,"startTime":1377574730306.4,"type":"Program"},{"children":[],"data":[],"endTime":1377574730306.4,"startTime":1377574730306.4,"type":"Program"},{"children":[{"data":{"usedHeapSizeDelta":1130268},"endTime":1377574730329.4,"startTime":1377574730307.4,"type":"GCEvent","usedHeapSize":2116764}],"data":[],"endTime":1377574730330.4,"startTime":1377574730306.4,"type":"Program","usedHeapSizeDelta":4293837028},{"children":[],"data":[],"endTime":1377574730565.4,"startTime":1377574730565.4,"type":"Program"}] \ No newline at end of file
diff --git a/tools/perf/metrics/unittest_data/sample_timeline.json b/tools/perf/metrics/unittest_data/sample_timeline.json
new file mode 100644
index 0000000..7fbfefd
--- /dev/null
+++ b/tools/perf/metrics/unittest_data/sample_timeline.json
@@ -0,0 +1,81 @@
+[
+ {
+ "type": "Paint",
+ "comment": "This paint event occurs before Layout, it will be filtered out.",
+ "startTime": 0,
+ "endTime": 0,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 800, 0, 800 ]
+ },
+ "frameId": "1.1",
+ "children": []
+ },
+ {
+ "type": "ResourceReceiveResponse",
+ "startTime": 0,
+ "endTime": 10,
+ "children": []
+ },
+ {
+ "type": "Layout",
+ "startTime": 10,
+ "endTime": 20,
+ "children": []
+ },
+ {
+ "type": "Paint",
+ "comment": "Full-screen paint event; area 1,000,000",
+ "startTime": 100,
+ "endTime": 100,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 1000, 0, 1000 ]
+ },
+ "frameId": "1.1",
+ "children": []
+ },
+ {
+ "type": "Paint",
+ "comment": "This paint event is not a leaf event. Area 300,000, time 400",
+ "startTime": 200,
+ "endTime": 400,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 300, 0, 300 ]
+ },
+ "frameId": "1.1",
+ "children": [
+ {
+ "type": "Paint",
+ "comment": "Area 300,000, time 300",
+ "startTime": 200,
+ "endTime": 300,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 300, 0, 300 ]
+ },
+ "frameId": "1.1",
+ "children": []
+ },
+ {
+ "type": "Paint",
+ "comment": "Area 300,000, time 400",
+ "startTime": 300,
+ "endTime": 400,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 300, 0, 300 ]
+ },
+ "frameId": "1.1",
+ "children": []
+ }
+ ]
+ },
+ {
+ "type": "Paint",
+ "comment": "Final paint event, with an area of 200,000 ",
+ "startTime": 550,
+ "endTime": 800,
+ "data": {
+ "clip": [ 0, 0, 1000, 0, 1000, 200, 0, 200 ]
+ },
+ "frameId": "1.1",
+ "children": []
+ }
+]