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

Unified Diff: docs/profiling_chromium_with_v8.md

Issue 1347153006: [Docs] Add wiki content to Markdown docs (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: docs/profiling_chromium_with_v8.md
diff --git a/docs/profiling_chromium_with_v8.md b/docs/profiling_chromium_with_v8.md
new file mode 100644
index 0000000000000000000000000000000000000000..46cdac44ade1c36cb4126a8baecfefb50eb986f3
--- /dev/null
+++ b/docs/profiling_chromium_with_v8.md
@@ -0,0 +1,34 @@
+# Introduction
+
+V8's CPU & Heap profilers are trivial to use from V8's shells (see V8Profiler), but it may appear confusing how to use them with Chromium. This page should help you with it.
+
+# Instructions
+
+## Why using V8's profilers with Chromium is different from using them with V8 shells?
+
+Chromium is a complex application, unlike V8 shells. Below is the list of Chromium features that affect profiler usage:
+
+ * each renderer is a separate process (OK, not actually each, but let's omit this detail), so they can't share the same log file;
+ * sandbox built around renderer process prevents it from writing to a disk;
+ * Developer Tools configure profilers for their own purposes;
+ * V8's logging code contains some optimizations to simplify logging state checks.
+
+## So, how to run Chromium to get a CPU profile?
+
+Here is how to run Chromium in order to get a CPU profile from the start of the process:
+```
+./Chromium --no-sandbox --js-flags="--logfile=%t.log --prof"
+```
+
+Please note that you wouldn't see profiles in Developer Tools, because all the data is being logged to a file, not to Developer Tools.
+
+### Flags description
+
+ * **--no-sandbox** - turns off the renderer sandbox, obviously must have;
+ * **--js-flags** - this is the containers for flags passed to V8:
+ * **--logfile=%t.log** - specifies a name pattern for log files; **%t** gets expanded into current time in milliseconds, so each process gets its own log file; you can use prefixes and suffixes if you want, like this: **prefix-%t-suffix.log**;
+ * **--prof** - tells V8 to write statistical profiling information into the log file.
+
+## Notes
+
+Under Windows, be sure to turn on .MAP file creation for **chrome.dll**, but not for **chrome.exe**.

Powered by Google App Engine
This is Rietveld 408576698