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

Issue 717923005: Profile FreeList

Created:
6 years, 1 month ago by keishi
Modified:
5 years, 11 months ago
Reviewers:
Yuta Kitamura
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Profile FreeList BUG=

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Total comments: 3

Patch Set 10 : #

Total comments: 8

Patch Set 11 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+269 lines, -30 lines) Patch
M Source/build/features.gypi View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -0 lines 0 comments Download
M Source/platform/heap/Handle.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M Source/platform/heap/Heap.h View 1 2 3 4 5 6 7 8 9 10 16 chunks +38 lines, -18 lines 0 comments Download
M Source/platform/heap/Heap.cpp View 1 2 3 4 5 6 7 8 9 10 16 chunks +168 lines, -7 lines 0 comments Download
M Source/platform/heap/ThreadState.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +6 lines, -1 line 0 comments Download
M Source/platform/heap/ThreadState.cpp View 1 2 3 4 5 6 7 8 9 10 5 chunks +48 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (1 generated)
keishi
GYP_DEFINES="gc_profile_marking=1 gc_profile_free_list=1" https://codereview.chromium.org/717923005/diff/150001/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/717923005/diff/150001/Source/platform/heap/ThreadState.cpp#newcode624 Source/platform/heap/ThreadState.cpp:624: void ThreadState::snapshotFreeListIfNecessary() Call when a snapshot could ...
5 years, 11 months ago (2015-01-27 08:59:01 UTC) #1
keishi
5 years, 11 months ago (2015-01-27 09:45:13 UTC) #3
## Instructions

Step 1: Apply patch to chromium
This adds trace-blinkgc profiler mode.
$ git cl patch 745493002

Step 2: Apply patch to WebKit
$ git cl patch 717923005

Step 3: Build with GYP_DEFINES="gc_profile_free_list=1 gc_profile_free_list=1"

Step 4: Run benchmark with profiler

Running entire page sets causes timeouts so I run them one at a time.

$ tools/perf/run_benchmark run --browser=release --profiler=trace-blinkgc
--page-filter=StyleSheetInsert.html blink_perf.css

Step 5: Load tracing JSON file in go/oilpanfragmentation

## Code overview

I'm sorry that the code is so adhoc. Ask me if you have any questions.

Data for tracing JSON is generated in ThreadState::snapshotFreeList(),
MarkingVisitor::reportMarkingStats(), and Heap::reportSweepingStats().

snapshotFreeList() records stats about the heap.
reportMarkingStats() records stats for every marking.
reportSweepingStats() records stats for every sweeping.

The chromium side changes had to be made because, on my machine, telemetry timed
out when receiving large tracing json files.
https://codereview.chromium.org/745493002/

I rebased the CL just now (Patch set 11) so that should compile, but from what I
remember, it crashes when trying to modify uom() or mom().

Powered by Google App Engine
This is Rietveld 408576698